Android は 4.1 (API レベル 16) 以降、システムのコーデック情報を取得できる「MediaCodec」などの一連の API を提供しています。
しかし、私の質問は、4.0 でコーデック リストを取得する方法です。
ところで、私は 4.1 のソース コードを確認しました。API 実装は、ファイルを解析して情報を取得します: system/etc/media_codec.xml。しかし、4.0 では、そのようなファイルはありません。
Android は 4.1 (API レベル 16) 以降、システムのコーデック情報を取得できる「MediaCodec」などの一連の API を提供しています。
しかし、私の質問は、4.0 でコーデック リストを取得する方法です。
ところで、私は 4.1 のソース コードを確認しました。API 実装は、ファイルを解析して情報を取得します: system/etc/media_codec.xml。しかし、4.0 では、そのようなファイルはありません。
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
-p
stagefright
) から始めて、コンポーネントのリストを取得する方法を確認することをお勧めします。if (listComponents)
関数内のブロックを見てくださいmain
。
詳細情報: stagefright プラグインの作成方法ここでは、両方のバージョンでコーデックがどのように処理されているかについて、いくつかの背景を説明します。