0

アクション スクリプト 3 について問題があります。flv ビデオがあり、その合計時間が 6 秒です。seekSeconds()で2.秒から始めたい。seekSeconds に 6 より大きい値を書き込むと、ビデオの最初から最後までしか再生されません。6 より小さい値を書き込むと機能しません。seekSeconds() に何を記述して 2 秒からビデオを開始できますか?

function useParams()
{
var obj:Object = new Object();

var j;
for (j in this.myParams)
{
    if (j == "url")
    {
        src = this.myParams[j];
    }
    else if (j=="bas")
    {
        startTime = int(this.myParams[j]);
    }
    else
    {
        stopTime = int(this.myParams[j]);
    }

    txt.text +=  j + "  -  " + this.myParams[j];
}
//fk.source = src;
txt.text = String(startTime);

}

fk.addEventListener(VideoEvent.READY, bitti);
function bitti(eventObject:VideoEvent):void
{ 
//fk.play();
trace(fk.totalTime);
fk.seek(2);
trace(fk.playheadTime);
//trace(fk.playheadTime);
}
4

1 に答える 1

0

VideoPlayerのドキュメントによると、 Event.READY がディスパッチされます。

FLV ファイルがロードされ、表示の準備ができたときに送出されるイベント。play() または load() メソッドを使用して新しい FLV ファイルをロードした後、最初にレスポンシブ状態に入ったときに開始されます。ロードされる FLV ファイルごとに 1 回だけ開始されます。

ビデオの準備ができている可能性がありますが、シークに十分な量にバッファリングされていません。必要なときに Event.READY が起動されることを保証するかどうかはわかりませんが、 bufferTimeを 2 より大きい値に変更できます。また、プログレッシブ ダウンロードの seek のプロパティにも注意してください。

プログレッシブ ダウンロードの場合、シークできるのはキーフレームのみです。したがって、シークは、指定された時間の後の最初のキーフレームの時間に移動します。

そのため、キーフレームが確実に渡されるように、十分に進んだ 2 秒以上の bufferTime を設定してください。

注: VideoPlayer と NetStream の両方に bufferTime があるため、どちらか一方または両方を調整する必要がある場合があります。

于 2010-06-18T23:03:12.123 に答える