2017-08-22 8 views
0

MediaPlayerのビデオをSurfaceに配信する必要があるこのユースケースがあります。残念ながら、Android Surface API全体にはその機能がありません(少なくとも、開発者サイトを勉強した後、見つけられません)。複数のAndroidサーフェスコンシューマ - 2つのサーフェイスビューへのビデオ再生

ビデオがカスタムカメラモジュールで作成されたシミアの使用例がありましたが、若干修正した後、カメラからBitmapを取得できたので、2つのサーフェスでlockCanvas、drawBitmap、unlockAndPostを使用しました。 MediaPlayerでは、Bitmapを取得して適切なタイミングで再生を続ける方法がわかりません。

また、USAGE_IO_INPUTとして1つの割り当て、USAGE_IO_OUTPUTとして2つ、ioReceive、copyFrom、ioSendの各メソッドを使用して、その目的でAllocationを使用しようとしました。しかし、それはまた行き止まりだった。 RenderScript.createに渡されたコンテキストがこのApplicationクラスから、または

Failed loading RS driver: dlopen failed: could not locate symbol .... falling back to default 
たとき

android.renderscript.RSInvalidStateException: Calling RS with no Context active. 

:いくつかの未知の理由で、のrenderScriptエンジンは私のプラットフォーム上で非常に不安定で、私のような数多くのエラーを持っていました

(私は完全なログをどこかで失ってしまった...)。そして最後に、MediaPlayerと互換性のある適切なInput Allocationタイプを作成することができませんでした。プラットフォーム上のRenderScriptの上記の欠陥のために、私はこれをこの問題を解決するための最後の手段と考えています。

結論として、ビデオを(MP4ファイルから)2つのサーフェスに再生する方法は?この動画は同期している必要があります。また、もっと一般的な質問、再生中に#X Surfaceの動画を動的に追加したり削除したりする方法は?

答えて

0

MediaPlayerの複数のインスタンスを同じビデオファイルソースで使用して問題を解決しました。ポーズ/プレイ/シークのような基本的なプレイヤーの操作を行う場合、私はすべてのプレイヤーでプレイしています。

関連する問題