私は現在、解像度切り替え機能を備えた Flash Web プレーヤーに取り組んでいます。play2()Actionscript でNetStream クラスの機能を利用しようとしています。
私が直面している問題は、ビデオがすぐに変化しないことです。この機能に精通している人にとってはplay2()、プレーヤーが実行しているの"standard switch"は"fast switch."
ドキュメントによると、オフセット パラメータが -1 の場合、高速切り替えが発生します。実際には、"NetStream.Play.Transition"イベントが受信されると、プレイヤーは で示される時間に達するまで待機しns.time + ns.bufferLengthてから、切り替えを実行します。
ファースト スイッチングによってバッファがクリアされたと思っていましたが、 を確認したns.backbufferlengthところ、すべてがまだキャッシュされていることがわかりました。また、次のようにも言及していますnetstream.time + 3。
この問題に関するヘルプ/洞察は大歓迎です。
これは、何が起こっているかを説明するコードのスニペットです (newStream()ユーザーがクリックして新しい解像度、YouTube スタイルに変更すると呼び出されます):
public function newStream(address:String):void
{
var opts:NetStreamPlayOptions = new NetStreamPlayOptions();
opts.streamName = address;
opts.transition = NetStreamPlayTransitions.SWITCH;
opts.offset = -1;
ns.play2(opts);
}
private function nsCallback(event:NetStatusEvent)
{
switch(event.info.code)
{
case "NetStream.Play.Transition":
{
trace("Current time (on Transition): " +
ns.time, "Buffer: " + ns.bufferLength);
var estTime:Number = ns.time + ns.bufferLength;
trace("Estimated Completion Time: " + estTime);
break;
}
}
}