(X =编码器的数字索引)
E / MediaProfiles(4048):找不到给定的音频编码器X.
A / AudioSource(4048):frameworks / base / media / libstagefright / AudioSource.cpp:58 CHECK(channels == 1 || channels == 2)失败.
A / libc(4048):0xdeadbaad处的致命信号11(SIGSEGV)(代码= 1)
在本机代码中.没有例外可以做出反应.应用程序只是强制关闭.
有没有办法查询Android> 3.x设备if
AAC
AMR-NB和
AMR-WB
实际上是支持吗?
文档(http://developer.android.com/guide/appendix/media-formats.html)
说这些是核心媒体格式,因此始终得到支持.
一些实际和普通手机(主要品牌)没有.
MediaCodec.createByCodecName(String name)
和
Get supported Codec for Android device
仅适用于API16 = Android 4.1,但有问题的设备是4.0.x.
它也没有列出AMR-NB和AAC.
解决方法
所以你能做的就是
>将设备连接到pc并使用adb pull命令拉取/etc/media_profiles.xml文件
>检查AudioEncoderCap属性.广告的每个可用性将有多个条目.
对于前:
AudioEncoderCap name =“aac”enabled =“true”
minBitRate =“8192”maxBitRate =“96000”
minSampleRate =“8000”maxSampleRate =“16000”
minChannels =“1”maxChannels =“1”
>如果’enabled’标志如上所述设置为“true”,则设备应支持该功能.如果不支持,则“enabled”标志将设置为“false”.
AFAIK,jb(4.1)上引入的媒体编解码器框架读取此/类似的配置文件,以向设备层公开设备功能.
希望这可以帮助.
谢谢!