我正在创建一个应用程序,我已经创建了一个从URL播放音乐的服务。问题是,当用户使用原生音乐播放器播放任何歌曲时,我的音乐服务正在正确播放音乐 BUT ,然后BOTH(Native Player和我的音乐服务)同时播放音乐。当用户开始使用本机播放器播放音乐时,我想停止使用我的音乐服务。
是否有任何广播Intent
,我可以注册以检测
音乐播放器已启动?
是否可以检测音乐播放器已启动?
任何其他解决方案?
任何建议都会受到赞赏。
答案 0 :(得分:1)
我会建议采用不同的方法,我认为这是正确的做法。
您的方法的问题是您建议检查一个特定的应用程序。而且有大量不同的音乐播放器,加上广播播放器,视频播放器以及游戏......所有这些都应该阻止你的音乐,以防他们想要播放。
那你怎么做?
所有这些都在Android Developers website中解释过。
您必须注册OnAudioFocusChangeListener
,因此,每当有不同的应用请求获得音频焦点时,您的应用都可以停止播放音乐。
答案 1 :(得分:0)
第1步:检测用户是否已打开原生音乐应用。为此,您需要知道原生音乐应用的包名称。
然后在这里参考我的答案:Android how to know an app has been started and range apps priority according the starting times
使用它,列表 taskinfo 将包含所有正在运行的活动的列表,如上所述,列表的第一个元素将是前景中的活动。
第2步:使用第1步检测原生音乐应用时(通过在后台轮询),然后停止你的应用程序的服务。
注意:您应该在后台(使用 asynctask )或其他服务执行此操作。
注意2 :此方法的局限性在于,当用户点击原生音乐应用中的播放时,您实际上无法停止音乐播放器,因为此方法将帮助您检测本机音乐应用程序是否打开。