2

Flash でビデオを再生すると、まずバッファリングが開始され、バッファがいっぱいになると再生されます。バッファがいっぱいになると、関連付けられた Video オブジェクトが自動的に最初のビデオ フレームを表示します。

このフレームが利用可能になったときに通知を受け取る方法はありますか? 表示する画像があるまでビデオコンポーネントを非表示にしたいからです。

現在、バッファがいっぱいの NetStreamEvent を処理しているため、再生開始時に表示されます。しかし、今はより大きなバッファー (10 秒) が必要なので、ユーザーに何かを表示するために 10 秒待つのは良くありません。

4

1 に答える 1

0

「NetStream.Play.Start」をリッスンする必要があります。

パッケージ {
    flash.display.Sprite をインポートします。
    インポート flash.events.*;
    flash.media.Video をインポートします。
    flash.net.NetConnection をインポートします。
    flash.net.NetStream をインポートします。

    public class VideoExample extends Sprite {
        private var videoURL:String = "someVideo.flv";
        プライベート変数接続:NetConnection;
        プライベート var ストリーム:NetStream;
        プライベート var ビデオ:ビデオ;

        public function VideoExample() {
            接続 = 新しい NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
        }

        プライベート関数 netStatusHandler(event:NetStatusEvent):void {

          trace("event.info.code"+event.info.code);

           スイッチ (event.info.code) {
                ケース "NetConnection.Connect.Success":
                    connectStream();
                    壊す;

                ケース "NetStream.Play.Start":
                addChild(ビデオ);
                壊す;

                ケース "NetStream.Play.StreamNotFound":
                    trace("ビデオが見つかりません: " + videoURL);
                    壊す;
            }
        }

        プライベート関数 connectStream():void {
            var stream:NetStream = 新しい NetStream(接続);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
            ビデオ = 新しいビデオ();
            video.attachNetStream(ストリーム);
            stream.play(videoURL);

        }

        プライベート関数 securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + イベント);
        }

        プライベート関数 asyncErrorHandler(event:AsyncErrorEvent):void {
            // AsyncErrorEvent イベントを無視します。
        }
    }
 }
于 2010-09-09T00:27:30.110 に答える