0

「swfobject.embedSWF()」を介してロードされた SWF があります。

Javascript のメソッドを使用して、フラッシュ API 経由で呼び出しを渡します: http://developer.longtailvideo.com/trac/wiki/Player4Api#Sendingevents

call.player.sendEvent('LOAD', theFile)

XMLHttpRequest() 呼び出しを GET 経由で PHP スクリプトに使用すると、ファイルの URL を取得できます。

http://xx.yy.com/protected/5dde98716ad8f31127ab560d94f96b87/4cbabea0/test.mp4

ブラウザに URL を入力するとファイルが開始されますが、sendEvent() 呼び出しに変数を渡しても何も起こりません。なんで?

var response = http.responseText;    
loadFile(response);
player.sendEvent('PLAY');

私が間違っていることは明らかですか?:/

ありがとう。

EDIT1:ソリューション

XMLHttpRequest()ビデオの URL を返すだけでなく、使用しているモジュールの一部を操作するために必要なパラメーターを含む実際の xml ファイルを返すことで、生成された URL を正しく読み込んで再生することができました。

<rss version="2.0" 
    xmlns:media="http://search.yahoo.com/mrss/" 
    xmlns:jwplayer="http://developer.longtailvideo.com/trac/wiki/FlashFormats">
    <channel>
        <title>Example media RSS playlist</title>
        <item>
            <title>Lighttpd Video</title>
            <media:content url="http://xx.yy.com/protected/91aa7dfa25596a7d59c3b9403fc4773f/4cbb35d6/test.mp4" />
            <jwplayer:provider>http</jwplayer:provider>
            <jwplayer:http.startparam>start</jwplayer:http.startparam>
        </item>
    </channel>
</rss>

これは今のように明らかなのだろうか。XMLHTTPRequest()xml ファイルとしてフォーマットされた応答のみを返すことができますか? :/

4

2 に答える 2

1

フラッシュのクロスドメイン制限が原因で、ファイルがロードされていません。

flash swfがロードされているドメインは、オーディオファイルがロードされているドメインと同じではないと想定しています。

この制限を無効にするには、サウンドファイルがホストされているサーバーのルートディレクトリにcrossdomain.xmlファイルを配置する必要があります。

<?xml version="1.0"?>
<!-- http://www.youtube.com/crossdomain.xml -->
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

このファイルは、Webサーバーのルートディレクトリ、つまりhttp://xx.yy.com/crossdomain.xmlに配置する必要があります。

于 2010-10-17T11:17:41.870 に答える
0

AS3 では、サウンドを再生するために Sound クラスを使用する必要があります。サウンドを再生するには、サウンド インスタンスが URLRequest オブジェクトを介して URL をロードする必要があります。

于 2010-10-17T10:54:20.610 に答える