承接我的上一篇https://blog.51cto.com/8906847/2367935 文章。
例如你在HUD抬头显示设备中,需要加入FMTX功能,即fm发射功能,另外需要在打开fmtx广播时,音频优先走fmtx芯片,而不是走speaker。
那么可以这样实现:
1)方法一:通过特定状态标记,来修改audiopolicy的engine.cpp
2)方法二:是使用类似如下的方式:
如果是Java的,那么可以仿照类似如下的方式:
private AudioManager getAudioManager() {
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
return audioManager;
}
getAudioManager().setWiredDeviceConnectionState(AudioManager.DEVICE_OUT_AUX_DIGITAL, 0, "", "fmtx"); 表示fmtx关闭。
getAudioManager().setWiredDeviceConnectionState(AudioManager.DEVICE_OUT_AUX_DIGITAL, 1, "", "fmtx");表示fmtx开启。
这样更新了audio available output device,并且通知到frameworks/av/services/audiopolicy/enginedefault/src/Engine.cpp。
当然,你如果