stream.bytesTotalが利用できない環境でビデオプレーヤーを作成しています。flvファイルにエンコードされた期間メタデータを使用して、再生の進行状況や時間の表示などを推定する必要があります。
問題は、flvをロードするときに、期間を含むメタデータに3回のうち2回アクセスできないことです。メタデータオブジェクトを反復処理する関数は次のとおりです:-
パブリック関数onMetaDataHandler(metadataObj:Object):void {
for (var metadata:Object in metadataObj) {
if (metadata == "duration" ) {
_duration = metadataObj[metadata];
Debug.log('metadata _duration == ' + _duration );
playBackTimeText();
}
if (metadata == "width" ) {
video.width = metadataObj[metadata];
}
if (metadata == "height" ) {
video.height = metadataObj[metadata];
}
Debug.log(metadata + ": " + metadataObj[metadata], 0xffff00);
}
}
これはこれを行うための最良の方法ですか、それともflvをリロードせずにメタデータをリロードする方法はありますか?