Android提供了一系列API(例如“ MediaCodec”),这些API可以使用户从4.1(API级别16)开始获取系统的编解码器信息。
但是,我的问题是如何在4.0上获得编解码器列表。
顺便说一句,我已经检查了4.1的源代码,API实现通过解析文件system / etc / media_codec.xml来获取信息。但是在4.0上,没有这样的文件。
最佳答案
在API 16中添加了MediaCodec
。在此之前,将可用组件硬编码在实现和供应商提供的omx库中。而且在Java方面,没有api可以做这种事情。在C ++中,您可以戳stagefright并获取该信息,例如,通过在adb shell中调用stagefright
程序(使用-l
或-p
)。有关较低层如何检查可用编解码器的信息,请参见http://source.android.com/devices/media.html。在以前的版本中,xml文件中的信息现在在c / c ++源代码中。 stagefright
程序(http://androidxref.com/4.0.4/xref/frameworks/base/cmds/stagefright/stagefright.cpp)的源代码将是一个很好的起点,并了解如何获取组件列表。查看if (listComponents)
函数中的main
块。
更多信息:How to create a stagefright plugin这是我认为在两个版本中如何完成编解码器处理的一些背景知识。
关于android - 如何在Android 4.0上获取编解码器列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19992479/