有沒有辦法向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類型。據推測,如果您所需的MIME類型不受支持,則會拋出RuntimeException
或返回null
。我不能保證只是因爲MediaCodec
報告有一個編碼器可以使用,例如MediaRecorder
。
這可能是對你有意思:
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;
}
發現here。正如您所看到的,您可以通過MediaCodecList.getCodecCount();
獲得已安裝的編解碼器數量。使用MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i);
您可以從列表中獲得有關特定編解碼器的信息。例如會告訴您編解碼器的標題/名稱。
而MediaCodec有一組來自MediaRecorder的編解碼器常量。 – 2012-09-24 07:23:15