我想知道如何处理 HDMI 切换到电视的家庭事件。我用 exoplayer 为 FireTV 开发了一个应用程序。问题是当我在 HDMI 端口和电视之间切换时,播放器仍在后台播放。我不想在后台播放内容。
我查看了亚马逊开发者文档。要求我对事件使用广播,对版本 5 使用 ACTION_HDMI_AUDIO_PLUG,以及 AudioDeviceCallbacks。 ACTION_HDMI_AUDIO_PLUG 仅适用于 HDMI 端口上的插件和插拔。
但我想知道在 HDMI 端口和电视之间切换的确切事件操作。这样我就可以处理玩家事件。
IntentFilter filter = new IntentFilter();
filter.addAction(AudioManager.ACTION_HDMI_AUDIO_PLUG);
registerReceiver(mReceiver, filter);
这是接收者代码:
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (AudioManager.ACTION_HDMI_AUDIO_PLUG.equals(action)) {
int state = intent.getIntExtra("state", 0);
Log.d(TAG, "ACTION_HDMI_AUDIO_PLUG: State"+state);
}
}
};
你找到解决办法了吗? 我也尝试过类似的东西,但就我而言,列表大小为 0
val tvInputManager = getSystemService(TV_INPUT_SERVICE) as TvInputManager
val tvInputInfoList = tvInputManager.tvInputList
val stringBuilder = StringBuilder()
for (tvInputInfo in tvInputInfoList) {
val stringInputID = tvInputInfo.id
if (stringInputID.contains("Hdmi") && tvInputInfo.isPassthroughInput) {
if (tvInputManager.getInputState(stringInputID) === TvInputManager.INPUT_STATE_CONNECTED) {
stringBuilder.append("\nCONNECTED - $stringInputID")
} else {
stringBuilder.append("\nNOT CONNECTED - $stringInputID")
}
}
}