Androidデバイスにエンコーディング用にサポートするオーディオとビデオのコーデックを尋ねる方法はありますか?Androidデバイス用のサポートされているCodecを取得する
私は http://developer.android.com/guide/appendix/media-formats.html に必須と記載されているコーデックの一部をサポートしないデバイスを見つけて、そこに記載されていない追加のコーデックをサポートするデバイスがあるように思われます。
Androidデバイスにエンコーディング用にサポートするオーディオとビデオのコーデックを尋ねる方法はありますか?Androidデバイス用のサポートされているCodecを取得する
私は http://developer.android.com/guide/appendix/media-formats.html に必須と記載されているコーデックの一部をサポートしないデバイスを見つけて、そこに記載されていない追加のコーデックをサポートするデバイスがあるように思われます。
Androidデバイスにエンコーディング用にサポートするオーディオとビデオのコーデックを聞く方法はありますか?
私は本当にそこにいたが、少なくともICSではないことを望む。
ゼリービーンはMediaCodec
クラスを提供します。 「サポートされているコーデックのリストを入手してください」というメッセージは表示されませんが、createEncoderByType()
というMIMEタイプを渡します。おそらく、それはRuntimeException
を返すか、希望のMIMEタイプがサポートされていない場合はnull
を返します。そして、MediaRecorder
のように動作することが保証されているエンコーダが利用可能であることをMediaCodec
が報告したからといって、私は約束できません。あなたのための興味深いことができ
:
それ here見つかりprivate static MediaCodecInfo selectCodec(String mimeType) {
int numCodecs = MediaCodecList.getCodecCount();
for (int i = 0; i < numCodecs; i++) {
MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
if (!codecInfo.isEncoder()) {
continue;
}
String[] types = codecInfo.getSupportedTypes();
for (int j = 0; j < types.length; j++) {
if (types[j].equalsIgnoreCase(mimeType)) {
return codecInfo;
}
}
}
return null;
}
。あなたが見る通り、MediaCodecList.getCodecCount();
でインストールされているコーデックの数を知ることができます。 MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
を使用すると、リストから特定のコーデックに関する情報を取得できます。たとえば、は、コーデックのタイトル/名前を示します。
MediaCodecには、MediaRecorderとは異なるコーデック定数セットがあります。 –