多屏时,未接入hdmi默认speaker音频输出,检测到接入hdmi时切换到hdmi音频输出。此时有个问题,如果接入hdmi的屏没有speaker会就导致没有声音输出了,所以需要默认hdmi和speaker同时出声。
- /frameworks/base/services/core/java/com/android/server/WiredAccessoryManager.java
private List<UEventInfo> makeObservedUEventList() {...// Monitor HDMI// add start/*uei = new UEventInfo(NAME_HDMI_AUDIO, BIT_HDMI_AUDIO, 0, 0);if (uei.checkSwitchExists()) {retVal.add(uei);} else {uei = new UEventInfo(NAME_HDMI, BIT_HDMI_AUDIO, 0, 0);if (uei.checkSwitchExists()) {retVal.add(uei);} else {Slog.w(TAG, "This kernel does not have HDMI audio support");}}*/// add end
}@Override
public Pair<Integer, Integer> parseState(ExtconInfo extconInfo, String status) {...// add start//updateBit(maskAndState, BIT_HDMI_AUDIO, status,"HDMI") ;// add end
}
- hardware/rockchip/audio/tinyalsa_hal/audio_hw.c
static int start_output_stream(struct stream_out *out)
{...
#if SUPPORT_MULTIAUDIOout->device &= ~(AUDIO_DEVICE_OUT_AUX_DIGITAL | AUDIO_DEVICE_OUT_SPDIF);
#endif// add startif (1/*out->device & AUDIO_DEVICE_OUT_AUX_DIGITAL*/) {// add endaudio_devices_t route_device = out->device & AUDIO_DEVICE_OUT_AUX_DIGITAL;route_pcm_card_open(adev->dev_out[SND_OUT_SOUND_CARD_HDMI].card, getRouteFromDevice(route_device));
}