0

標準のApacheサーバーでホストされている長いmp3ファイルがあります(これまでのところ30分ですが、より長いサウンドでも動作するようにしたいです)。

このオーディオの再生を指定した時点から開始したいと考えています。

Flash Actionscript 3 を使用しようとすると、私の基本的なテストでは、最初から選択した位置までのすべてのオーディオが再生前にバッファリングされることが示されました (Sound.bytesLoaded は私の友人でした)。1 秒で開始すると、再生を開始するのに約 3 秒かかり、30 秒で開始すると、約 25 秒かかります。3 時間のオーディオブックの途中まで再生をスキップするような非常に長い mp3 の場合、これは明らかに実用的ではありません。

私が使用している ActionScript 3.0 コードは次のとおりです。

button.addEventListener(MouseEvent.MOUSE_DOWN, function():void {
 var s:Sound = new Sound(); 
 var req:URLRequest = new URLRequest("http://example.com/audio.mp3"); 
 s.load(req); 
 s.play(30 * 60 * 1000); // start 30 seconds in.
} 
);

これがFlashで可能かどうか知っている人はいますか?

そうでない場合、サーバー側のソリューションをインストールせずに Web ページからこれを行うことは可能ですか?

どうもありがとう。

4

1 に答える 1

1

私が理解しているように、これは HTTP とストリーミングを介した通常の「プログレッシブ ダウンロード」の問題です。

標準のセットアップでは、通常の HTTP サーバーと Flash Player は mp3 またはビデオの過去の部分をスキップできません。説明したように、その時点までのすべてのデータを最初にダウンロードする必要があります。

スキップ/シークを有効にする 1 つの方法は、Adobe のFlash Media Streaming Serverのようなストリーミング サーバーまたはオープン ソースの代替Red5を使用して mp3 を提供することです。

しかし、HTTP サーバーでいわゆる「疑似ストリーミング」をセットアップする方法もあります。

http://flowplayer.org/plugins/streaming/pseudostreaming.html

于 2010-11-21T18:19:36.913 に答える