资讯详情

RK3399 Android7.1使用camera录像后播放没有声音

经调查发现camera打开视频时,与音频相关log下一句: AudioHardwareTiny: create new input stream for dev(0x00000020) 这个打开的device设备号为:0x当我用系统的录音应用程序打开录音时,打印如下: AudioHardwareTiny: create new input stream for dev(0x00000004) 这个打开的device设备号为:0x00000004。 根据定义: AUDIO_DEVICE_IN_BUILTIN_MIC = AUDIO_DEVICE_BIT_IN | 0x4 还有 AUDIO_DEVICE_IN_HDMI = AUDIO_DEVICE_IN_AUX_DIGITAL AUDIO_DEVICE_IN_AUX_DIGITAL = AUDIO_DEVICE_BIT_IN | 0x20 判断得出camera打开录像的时候实际走的音频通道是HDMI_IN。

再打印: alsa_route: route_set_controls() set route 21(打开录音时打印) alsa_route: route_set_controls() set route 34(这是camera打开视频时打印) 21对应的route是:MAIN_MIC_CAPTURE_ROUTE 34对应的route是:HDMI_IN_CAPTURE_ROUTE

综上,camera录像时走的是HDMI IN的路径。

解决方案如下:

diff --git a/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp b/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp index 58e198a..9d3bde9 100755 --- a/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp b/frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp @@ -689,7 689,8 @@ audio_devices_t Engine::getDeviceForInputSource(audio_source_t inputSource) cons } break; case AUDIO_SOURCE_CAMCORDER: - if (availableDeviceTypes & AUDIO_DEVICE_IN_HDMI) { if ((availableDeviceTypes & AUDIO_DEVICE_IN_HDMI) && property_get_bool("media.audio.hdmiin", false)) { device = AUDIO_DEVICE_IN_HDMI; } else if (availableDeviceTypes & AUDIO_DEVICE_IN_BACK_MIC) { device = AUDIO_DEVICE_IN_BACK_MIC;

标签: 红外光电传感器st198a

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司