0

我遇到了一个小障碍,在过去的 3 个小时里它一直让我发疯。我已经尝试了我能想到的一切......

我正在尝试使用 SWFObject 将多个 JWplayers 嵌入到页面中。它是由 SilverStripe 框架内的一个函数构建的。嵌入本身工作得很好,但它不会加载皮肤。混蛋。

每个实例返回的代码如下:

<script type="text/javascript"> 
//<![CDATA[
swfobject.embedSWF(
'http://xxxxxxx.xxxxxxx.nl/dataobject_manager/code/flv/shadowbox/libraries/mediaplayer/player.swf',
'player-1',
'646',
'341',
'9.0.0',
'expressInstall.swf',
{
    file : 'http://xxxxxxx.xxxxxxx.nl/assets/Uploads/1.Introductie.flv',
    image : '/assets/video_thumbnails/_resampled/croppedimage646341-1.jpg',
    skin : 'http://xxxxxxx.xxxxxxx.nl/dataobject_manager/code/flv/jwplayer-skin/jw-skin_nedtrain.zip'
},
{
    allowscriptaccess : 'true', 
    wmode : 'opaque', 
    allowfullscreen : 'true'
}
)
//]]>
</script> 

现在,为皮肤提供的 URL 是正确的。但是当我在 Chrome 中运行这个页面时,它的控制台会告诉我以下信息:

加载资源失败:服务器响应状态为 404(未找到)/dataobject_manager/code/flv/jwplayer-skin/jw-skin_nedtrain.zip.swf

注意到末尾的“ .swf ”了吗?它是从哪里得到的?!该死的,该文件不存在。我猜测 SWFObject 会处理 URL 并添加 .swf 部分,所以我尝试使用 jwplayer.js 来嵌入它。这导致了完全相同的错误

我难住了。谁能帮我摆脱困境?任何人??

4

1 回答 1

0
  1. 您已将播放器添加到 dataobject_manager 文件夹中?恕我直言,这永远不应该添加到那里 - 将任何自定义代码/实用程序保留在 mysite、您的主题或专用模块/小部件文件夹中。

  2. 你是从一个函数生成上面的 JS 吗?恕我直言,这应该在模板中完成。我对包含做了几乎相同的事情 - 使用不同的 JS 包含方法和其他模块,但原理应该是相同的:

    <div id="mediaspace">Please activate JS or install Flash.</div>
    <script type="text/javascript" src="/{$ThemeDir}/videoplayer/swfobject.js"></script>
    <script type="text/javascript">
        var so = new SWFObject('{$BaseHref}{$ThemeDir}/videoplayer/player-licensed.swf', 'mpl', '600', '320', '9');
        so.addParam('allowscriptaccess', 'always');
        so.addParam('allownetworking', 'all');
        so.addParam('allowfullscreen', 'true');
        so.addParam('wmode', 'opaque');
        so.addVariable('file', '$xmlfile');
        so.addVariable('plugins', '{$BaseHref}{$ThemeDir}/videoplayer/GridCommercial.swf');
        so.addVariable('dock', 'true');
        so.write('mediaspace'); 
    </script>
    
于 2011-08-13T20:31:18.303 回答