2012-08-03 8 views
9

Androidデバイスにエンコーディング用にサポートするオーディオとビデオのコーデックを尋ねる方法はありますか?Androidデバイス用のサポートされているCodecを取得する

私は http://developer.android.com/guide/appendix/media-formats.html に必須と記載されているコーデックの一部をサポートしないデバイスを見つけて、そこに記載されていない追加のコーデックをサポートするデバイスがあるように思われます。

答えて

4

Androidデバイスにエンコーディング用にサポートするオーディオとビデオのコーデックを聞く方法はありますか?

私は本当にそこにいたが、少なくともICSではないことを望む。

ゼリービーンはMediaCodecクラスを提供します。 「サポートされているコーデックのリストを入手してください」というメッセージは表示されませんが、createEncoderByType()というMIMEタイプを渡します。おそらく、それはRuntimeExceptionを返すか、希望のMIMEタイプがサポートされていない場合はnullを返します。そして、MediaRecorderのように動作することが保証されているエンコーダが利用可能であることをMediaCodecが報告したからといって、私は約束できません。あなたのための興味深いことができ

+1

MediaCodecには、MediaRecorderとは異なるコーデック定数セットがあります。 –

6

それ 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);を使用すると、リストから特定のコーデックに関する情報を取得できます。たとえば、は、コーデックのタイトル/名前を示します。

関連する問題