個人的に使用するアプリケーションで、
タイトルにある機能を持ったアプリを作成したいと考えています。
しかし、いくつかの手法を試しましたが、
よくても0.5ミリ秒程度のギャップが発生してしまいます。
何かいい今までの改善策や手法などはないものでしょうか?
以下、今までの実験内容のメモです。
・Android MediaPlayer (Java)
ソースを指定してから、prepareメソッドを利用しなければ再生できないため
どうしてもギャップが発生してしまいます。
setNextMediaPlayer()メソッドに関しては、動画には対応していないようで、
2つの動画を同時に準備しておくのも1つのSurfaceHolderでは無理なようでした。
・Android OpenGL ES (NDK)
容量はかさみますが、連番画像ファイルを用意してテクスチャの切り替えで行いました。
読み込みとglTexImage2D関数の処理時間が長く、実用的ではなさそうです。
・Android ANativeWindowへの直接描画 (NDK)
描画元となるフレームバッファの作成に時間がかかってしまい、
実用的ではなさそうに思いました。 (単に技術力不足かもしれません)
フレームバッファを転送するのはとても速いのですが…。
・Android 公式API OpenMAX AL (NDK)
2つの動画を準備してから片方ずつ1つのSurface上で再生しましたが、
2つ目の動画がうまく再生できませんでした。
情報が少なすぎて、全て試せていないかもしれません。
また、OpenGL ES 2.0と連携し SurfaceTextureを切り替える方法も試してみましたが、 ギャップが発生してしまいます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。