adobe airで動画を見るアプリを作りたいです。優先順位は、seek(framneNumber) を使用して非常に細かい粒度でシークすることです。FLVPyebackAS3.swc の FLVPlayback オブジェクトを使用しています。
import fl.video.FLVPlayback;
まず第一に、シークの精度を理解していません。それは本当に任意のフレームにあるのか、それとも GOF (ビデオ圧縮で使用されるフレームのグループ - エンコーディング) の I フレームにあるのかだけです。
次に、フレーム内をシークするクリーンな方法を探しています。私はこのコードを使用しました:
private function getFrameRate():int {
if(playerFLV.metadataLoaded) return playerFLV.metadata.videoframerate;
else return -1;
}
private function seek(frame:int):void {
if(getFrameRate()>0)
playerFLV.seek( frame / getFrameRate() );
}
しかし、時にはそれは十分に正確ではないようです