5

AndroidAirアプリで再生するビデオファイルがあります。を使用してフレームをキャプチャしようとしてbitmapData.Draw(video)いますが、.flvビデオでのみ機能します。

ビデオはローカルで再生されます-インターネットやサーバーはありません。

ビデオを.mp4に変更すると、ステージ上で再生されますが、描画関数が呼び出された後、空白のbitmapDataがあります。エラーは言いません。

再生した.mp4ビデオからフレームをキャプチャするにはどうすればよいですか?

注- 。StageVideoでは不可能であることがわかっているため、これはビデオコンポーネントであり、ではありませんStageVideo

ネットストリームの初期化。私も追加しましたcheckPolicyFile = true-それは役に立ちませんでした。

my_nc.connect(null);
my_nc.client = this;

_ns = new NetStream(my_nc);
_ns.client = this;
_ns.useHardwareDecoder = true;
_ns.checkPolicyFile = true;
4

3 に答える 3

4

UPD: ActionScript を使用して、Android デバイスのビットマップで h.264 ビデオを描画する方法がないようです。モバイル FlashPlayer 11.1 の mp4 コンテナーと同じコードの AIR 3.5 アプリケーションで、このh.264 でエンコードされたビデオ ファイル (元のファイル)を使用してこのデモ(ソース)をテストしましたが、どちらも失敗しました。すべてのレンダリング モード (ダイレクト、CPU、および GPU) で黒い四角形が表示されます。

可能な回避策は、スクリーンショットを作成するネイティブ拡張機能を作成し (これを見つけましが、アプリがクラッシュする可能性があると報告されていますが、ソースが役立つ場合があります)、既知の四角形でビデオをトリミングすることです。これは美しい解決策ではありませんが、今のところ他の変種は見当たりません。

于 2013-01-31T13:22:42.920 に答える
0

私はかつて似たようなものに出くわしました。ビデオコンプを空のスプライトに配置して、そこから描画しようとしましたか。つまり、直接ではなく、ビデオの親から。

于 2013-01-30T22:30:09.613 に答える