devices2 = availableOutputDevices.getDevicesFromTypes({ AUDIO_DEVICE_OUT_AUX_DIGITAL, AUDIO_DEVICE_OUT_HDMI_1, });
时间: 2024-04-25 07:26:16 浏览: 14
这行代码是在获取可用设备列表中,选择指定类型的设备进行输出。其中`AUDIO_DEVICE_OUT_AUX_DIGITAL`代表AUX数字输出,`AUDIO_DEVICE_OUT_HDMI_1`代表HDMI输出。`availableOutputDevices`是可用设备列表,`getDevicesFromTypes()`方法会返回一个包含指定类型设备的列表。最终,这些设备会被存储在`devices2`变量中,供后续使用。
相关问题
if (strategy == STRATEGY_MEDIA) { // ARC and AUX_LINE can co-exist with others. devices3 = availableOutputDevices.getDevicesFromTypes({ AUDIO_DEVICE_OUT_HDMI_ARC, AUDIO_DEVICE_OUT_HDMI_EARC, AUDIO_DEVICE_OUT_AUX_LINE, }); }
这是一个代码段,它检查一个名为 strategy 的变量是否等于 STRATEGY_MEDIA,如果是,则从可用的输出设备中获取支持 ARC 和 AUX_LINE 的设备。这段代码可能是用于音频设备管理的一部分,其中 STRATEGY_MEDIA 可能是一种特定的音频输出策略,而 devices3 可能是用于存储设备列表的变量。AUDIO_DEVICE_OUT_HDMI_ARC 和 AUDIO_DEVICE_OUT_HDMI_EARC 可能是支持 HDMI ARC 和 eARC 的设备类型,而 AUDIO_DEVICE_OUT_AUX_LINE 则可能是支持 AUX_LINE 的设备类型。
// device is DEVICE_OUT_SPEAKER if we come from case STRATEGY_SONIFICATION or // STRATEGY_ENFORCED_AUDIBLE, AUDIO_DEVICE_NONE otherwise devices.add(devices2); // If hdmi system audio mode is on, remove speaker out of output list. if ((strategy == STRATEGY_MEDIA) && (getForceUse(AUDIO_POLICY_FORCE_FOR_HDMI_SYSTEM_AUDIO) == AUDIO_POLICY_FORCE_HDMI_SYSTEM_AUDIO_ENFORCED)) { devices.add(availableOutputDevices.getDevicesFromTypes(AUDIO_DEVICE_OUT_AUX_DIGITAL)); devices.add(availableOutputDevices.getDevicesFromTypes(AUDIO_DEVICE_OUT_HDMI_1)); devices.remove(devices.getDevicesFromType(AUDIO_DEVICE_OUT_SPEAKER)); }
这是 Android 系统中的音频管理代码,用于根据不同的音频场景(如铃声、媒体播放等)选择合适的音频输出设备。
首先,代码根据不同的场景(如铃声、强制播放等)来确定输出设备,如果是铃声或强制播放,则输出设备为扬声器(DEVICE_OUT_SPEAKER),否则为无设备(AUDIO_DEVICE_NONE)。
接下来,如果开启了 HDMI 系统音频模式,那么就从输出设备列表中移除扬声器输出设备,并添加 HDMI 输出设备(包括 AUX 数字音频和 HDMI 1)。
最后,代码返回选择好的音频设备列表。