ストリーミングサウンドファイルの操作

サウンドファイルまたはビデオファイルのデータをロード中にデータを再生することを、ストリーミングと呼びます。データが完全にロードされなくてもサウンドを聴くことができるので、リモートサーバーからロードされる外部サウンドファイルの多くはストリーミングされます。

SoundMixer.bufferTime プロパティは、サウンドが再生される前に Flash Player が収集するサウンドデータの長さを、ミリ秒単位で示します。つまり、bufferTime プロパティが 5000 に設定されていると、Flash Player はサウンドが再生されるまでに、少なくとも 5000 ミリ秒分のデータをサウンドファイルからロードします。デフォルトの SoundMixer.bufferTime 値は 1000 です。

アプリケーションは、サウンドのロード中に新しい bufferTime 値を明示的に指定することで、個々のサウンドのグローバルな SoundMixer.bufferTime 値をオーバーライドすることができます。デフォルトのバッファ時間をオーバーライドするには、次のように、まず SoundLoaderContext クラスの新しいインスタンスを作成し、その bufferTime プロパティを設定し、それを Sound.load() メソッドのパラメータとして渡します。

import flash.media.Sound;
import flash.media.SoundLoaderContext;
import flash.net.URLRequest;

var s:Sound = new Sound();
var req:URLRequest = new URLRequest("bigSound.mp3");
var context:SoundLoaderContext = new SoundLoaderContext(8000, true);
s.load(req, context);
s.play();

サウンドの再生時において、Flash Player はサウンドバッファを同じサイズか、それ以上のサイズに維持します。サウンドデータが再生速度よりも速くロードされると、再生は中断することなく続行します。しかし、ネットワークの制限によりデータのロード速度が遅くなると、再生ヘッドがサウンドバッファの最後に到達することがあります。このような場合、再生は中断されますが、サウンドデータがさらにロードされると自動的に再開されます。

Flash Player がデータのロードを待機しているために再生が中断しているのかどうかを確認するには、Sound.isBuffering プロパティを使用します。


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000288.html