2012-08-03 14 views

Odpowiedz

4

Czy istnieje sposób, aby zwrócić urządzenie z Androidem, co audio i kodeki wideo to obsługuje kodowania?

Naprawdę chciałbym, aby istniały, ale nie ma, przynajmniej przez ICS.

Jelly Bean oferuje klasę MediaCodec. Chociaż nie ma "listy obsługiwanych kodeków", ma ona numer createEncoderByType(), w którym przekazujesz typ MIME. Prawdopodobnie spowoduje to wygenerowanie RuntimeException lub zwrotu null, jeśli żądany typ MIME nie jest obsługiwany. I nie mogę obiecać, że tylko dlatego, że MediaCodec informuje, że enkoder jest dostępny, z którego jest gwarantowane działanie, powiedzmy, MediaRecorder.

+1

A MediaCodec ma inny zestaw stałych kodeka z MediaRecorder. –

6

To może być dla Ciebie interesujący:

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; 
} 

Znaleziona here. Jak widzisz, masz liczbę zainstalowanych kodeków z MediaCodecList.getCodecCount();. Dzięki MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i); otrzymujesz informacje o określonym kodeku z listy. na przykład mówi o tytule/nazwie kodeka.

Powiązane problemy