ここにn00b(最初のAndroidプロジェクト)。Androidファームウェアビルドと統合されたカスタムビデオコーデックが提供されました。これは、MediaPlayerInterfaceから継承するクラスと、適切なファイルタイプのcreate()ファクトリ関数からカスタムコーデッククラスのインスタンスを返すカスタムMediaPlayerService実装を含む.soファイルです。
このコーデックを、ファームウェアにコーデックが含まれていない電話にインストールできるビデオプレーヤーアプリケーションの一部として使用したいのですが、.soファイルをlibs / armeabiフォルダーに置き、JNI経由で呼び出します。
この質問への回答から、MediaPlayerフレームワーク内でこれを行うことは不可能であり、新しいメディアプレーヤーをゼロから作成する必要があることがわかりました。まず、JavaでUIを実装し、SurfaceViewを拡張し、MediaPlayerクラスのインスタンスを使用してビデオを再生するカスタムビュー(VideoViewの代わりに)を使用するように設定しました。次に、このMediaPlayerのインスタンスをカスタムメディアプレーヤーのJavaクラスに置き換えました。JNIインターフェースをセットアップし、android_media_MediaPlayer.cppの方法を模倣し、JNIコードでMediaPlayerC++クラスを呼び出しました。次に、これをカスタムC++メディアプレーヤークラスに置き換える必要があります。
これは私が問題にぶつかり始めているところです。カスタムプレーヤーを実装するための推奨されるアプローチは何ですか?ありますか?ソースをトロールする以外に、このようなもののオンラインドキュメントはありますか?どのくらいのフレームワークを使用でき、どのくらい自分自身を再実装する必要がありますか?MediaPlayerServiceと同等のものを実装する必要がありますか?
ヒントは大歓迎です。