14

ここに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と同等のものを実装する必要がありますか?

ヒントは大歓迎です。

4

3 に答える 3

2

代わりにVLCを使ってみませんか?ソースコードを入手でき、あらゆるフォーマットをサポートします。あなたの目的のためにそれを切り落とし、それを皮を剥き、出来上がり、c'estfini。私は彼らが実際にコードをハッキングしていることを知っています、あなたはそれをジャンプして彼らを助けることができます。

http://gigaom.com/video/vlc-for-android-demo-beta/

于 2011-07-14T03:31:25.747 に答える
2

Androidのソースコードを検索して、AndroidがJavaでMediaPlayerインターフェイスをどのように実装したかを知ることができます。同様の行をたどることができます。

MediaPlayerクラスリファレンス

于 2011-07-07T10:47:07.227 に答える
2

コーデックがCPUに負担をかけすぎないことを願っています。AndroidがH.264のみをサポートする主な理由は、(おそらく)ほとんどのデバイスでこのコーデックのハードウェアサポートがあることです。他のコーデックはCPUで処理する必要がありますが、これはおそらく十分に強力ではありません。

于 2011-07-13T17:26:23.807 に答える