3

SWFへの外部サウンドがたくさんあるプロジェクトがあります。それらを再生したいのですが、新しいURLをサウンドオブジェクトにロードしようとすると、どちらかで失敗します。

エラー#2068:無効なサウンド

またはでioErrorを発生させます

エラー#2032ストリームエラー

//「http:// ..」「file:// ..」「//..」および「..」のプレフィックスが付いたパスで試行しました)

var path:String = "http://../assets/the_song.mp3";

var url:URLRequest = new URLRequest( path );

var sound:Sound = new Sound();

sound.addEventListener( IOErrorEvent.IO_ERROR, ioErrorHandler);

sound.addEventListener( SecurityErrorEvent.SECURITY_ERROR, secHandler);

sound.load(url);
4

4 に答える 4

2

さて、私は mp3 をディレクトリに置いてテストを行いました:soundTest/assets/song.mp3 次に、別のディレクトリで mp3 を呼び出す swf を作成します:soundTest/swfs/soundTest.swf使用するvar path:String = "../assets/song.mp3";と、エラーなしでコンパイルされます。

実際のディレクトリ構造は何ですか?

于 2008-09-21T16:38:13.330 に答える
2

完全な URL を入力する場合を除き、http:// や file:// は使用しないでください。

サウンドは、完全または相対 URL から mp3 ファイルをロードできます。URL が正しく有効であることを確認する必要があります。

たとえば、ファイルへのフル パスがhttp://www.something.com/assets/the_song.mp3の場合、「/assets/the_song.mp3」のパスが機能します。

于 2008-09-20T16:44:48.987 に答える
2

FireFox 用の httpfox をダウンロードする必要があります。この SNIFFER を使用すると、ブラウザを介してどのようなデータが流れているかを確認できます。各ファイルへのパスを含め、ファイルが読み込まれていることを確認できます。また、POST および GET 変数をスニッフィングすることもできます。これにより、ファイルがどこからプルされているかが示され、それに基づいて相対パスを修正できます。

https://addons.mozilla.org/en-US/firefox/addon/6647

重要:

SWF から呼び出されるすべての外部アセットは、SWF ではなく、Web 上にロードされるときにそれらをロードする html ファイルに関連しています。唯一の例外で、これは AS3 で始まったものです。FLV は、他のすべてのアセットのように SWF をロードする HTML ドキュメントではなく、SWF に関連しています。これが SNIFFERS が重要なツールである理由です。スニファーの URL が奇妙なパスを呼び出していることに気付くまで、しばらく頭を悩ませました。

以下は、サウンドをロードする方法です。

var soundRequest:URLRequest = "path/to/file.mp3";
var s:Sound = new Sound(soundRequest);
var sChannel = s.play(0, int.MAX_VALUE); //Causes it to repeat by the highest possible number to flash.
//Above starts the sound immediatly (Streaming);

//Now to wait for completion instead, pretend we didnt start it before. s.addEventLister(Event.SOUND_COMPLETE, onSComplete, false, 0, true); function onSComplete(e:Event):void { var sChannel = s.play(0, int.MAX_VALUE); //Causes it to repeat by the highest possible }

于 2008-09-26T10:07:52.197 に答える
0

RTMP と HTTP の両方のプロトコルで、パスは「path/to/mp3:file.mp3」または「path/to/mp3:file」である必要があります。私は思い出せる。両方にチェックを入れてください。

于 2008-11-09T07:00:13.540 に答える