3

Android は 4.1 (API レベル 16) 以降、システムのコーデック情報を取得できる「MediaCodec」などの一連の API を提供しています。

しかし、私の質問は、4.0 でコーデック リストを取得する方法です。

ところで、私は 4.1 のソース コードを確認しました。API 実装は、ファイルを解析して情報を取得します: system/etc/media_codec.xml。しかし、4.0 では、そのようなファイルはありません。

4

2 に答える 2

3

MediaCodecが API 16 で追加されました。それ以前は、使用可能なコンポーネントが実装およびベンダー提供の omx ライブラリにハードコードされていました。そして、この種のことを行うための Java 側の API はありませんでした。C++ から、たとえばadb シェルで(またはstagefrightを使用して) プログラムを呼び出すことにより、stagefright を突き刺してその情報を取得できます。下位層が利用可能なコーデックをチェックする方法については、http://source.android.com/devices/media.htmlを参照してください。以前のバージョンでは、現在 xml ファイルにある情報は c/c++ ソース コードにありました。プログラムのソース( http://androidxref.com/4.0.4/xref/frameworks/base/cmds/stagefright/stagefright.cpp-l-pstagefright) から始めて、コンポーネントのリストを取得する方法を確認することをお勧めします。if (listComponents)関数内のブロックを見てくださいmain

詳細情報: stagefright プラグインの作成方法ここでは、両方のバージョンでコーデックがどのように処理されているかについて、いくつかの背景を説明します。

于 2013-11-15T06:07:39.877 に答える