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-part を追加すると推測しているので、代わりに jwplayer.js を使用して埋め込んでみました。まったく同じエラーが発生しました。

私は困惑しています。誰かが私の悲惨さから私を助けてくれませんか? 誰??

4

1 に答える 1

0
  1. プレーヤーを dataobject_manager フォルダーに追加しましたか? IMHOこれは決してそこに追加しないでください-カスタムコード/ユーティリティをmysite、テーマ、または専用のモジュール/ウィジェットフォルダーに保管してください。

  2. 関数から上記の JS を生成していますか? IMHOこれはテンプレートで行う必要があります。私はインクルードでほとんど同じことをしています - 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 に答える