Mar*_*hon 5 media android amr stagefright mediarecorder
当 Android 设备不支持强制音频编码器时,您会得到:(X=编码器的数字索引)
E/MediaProfiles(4048): 未找到给定的音频编码器 X A/AudioSource(4048): frameworks/base/media/libstagefright/AudioSource.cpp:58 CHECK(channels == 1 || channels == 2) failed。A/libc(4048):本机代码中 0xdeadbaad 处的致命信号 11 (SIGSEGV)(代码 = 1)。没有例外反应。应用程序只是强制关闭。
如果实际支持 AAC AMR-NB 和 AMR-WB,是否有任何方法可以查询 Android > 3.x 设备?文档 ( 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。
小智 2
在您的 Android 设备上,媒体配置文件/功能存储在名为 media_profiles.xml(在 ICS/4.0 上)的配置文件中。
通常,该文件位于设备上的 /etc 文件夹中。
所以你可以做的是
检查 AudioEncoderCap 属性。所公布的每项功能都会有多个条目。例如:
AudioEncoderCap name =“aac”启用=“true”minBitRate =“8192”maxBitRate =“96000”minSampleRate =“8000”maxSampleRate =“16000”minChannels =“1”maxChannels =“1”
如果如上所述将“启用”标志设置为“真”,则设备应支持该功能。如果不支持,“启用”标志将设置为“假”。
AFAIK,jb (4.1) 上引入的媒体编解码器框架读取此/类似的配置文件以向应用程序层公开设备功能。
希望这可以帮助。
谢谢!
| 归档时间: |
|
| 查看次数: |
3617 次 |
| 最近记录: |