gpt4 book ai didi

java - 检测音频或视频转换是否处于 Activity 状态

转载 作者:行者123 更新时间:2023-11-29 22:57:17 25 4
gpt4 key购买 nike

我最近在我的应用中添加了一个系统音量 Controller ,但我忽略了 Casting。

该应用程序使用无障碍服务检测音量按钮点击,通过广播关闭系统对话 Intent 拦截系统音量面板并弹出我的覆盖面板,允许用户直接从面板控制音频(闹钟、音乐和铃声) .

如果用户正在通话或屏幕关闭,我已经添加了停止检查。

有没有办法确定 android 设备当前是在转换视频还是音频?

我研究了几个 API,它们似乎都指向应用上下文中的方法,而不是系统范围内的方法。

最佳答案

解决方案是创建一个 MediaSessionManager 实例并检查 Activity Controller ,然后获取 PlaybackType。

MediaController = null;
boolean isCasting = false;
MediaSessionManager mediaSessionManager = (MediaSessionManager) getSystemService(MEDIA_SESSION_SERVICE);
assert mediaSessionManager != null;
List<MediaController> sessions = mediaSessionManager.getActiveSessions(new ComponentName(this, NotificationListener.class));
for(MediaController controller : sessions) {
try {
isCasting = Objects.requireNonNull(controller.getPlaybackInfo()).getPlaybackType() == MediaController.PlaybackInfo.PLAYBACK_TYPE_REMOTE;
} catch (Exception e) {
e.printStackTrace();
}
if(isCasting){
mediaController = controller;
break;
}
}

关于java - 检测音频或视频转换是否处于 Activity 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57292500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com