4

我正在开发一个音乐应用程序,该应用程序包含在其他应用程序运行时播放音乐的服务。

为了欣赏音乐并且只欣赏音乐,该服务将所有其他应用程序静音。为此,它将 STREAM_MUSIC 静音并通过 STREAM_VOICE_CALL 播放音乐(在此处找到静音其他应用程序的解决方案)

由于该服务使用 STREAM_VOICE_CALL 播放音乐,我试图找到一种在播放声音时让音量按钮控制此流的方法。

我已经尝试过的:

  • setVolumeControlStream:仅适用于活动
  • 捕获音量键按下事件:服务不接收此类事件(来源
  • audioManager.setMode(AudioManager.MODE_IN_CALL) :在我的情况下不起作用。另外,SDK 文档指出,这种“模式只能由电话应用程序在拨打电话时使用”。

在这一点上,我没有选择,任何帮助将不胜感激。谢谢!

4

2 回答 2

3

我个人不建议您这样STREAM_VOICE_CALL做,因为与媒体播放相比,建议将其用于语音通话。使用它可能会阻止您使用 Android 公开的功能进行媒体播放。

话虽如此并考虑到您的用例,我认为您需要寻找与“媒体音量”级别相比变化的“通话量”级别。

查看股票音乐播放器应用程序中使用的MediaPlaybackService.java并尝试根据您的需要对其进行自定义。

于 2012-08-14T09:30:32.897 回答
-1

我自己没试过。但看起来它应该工作。请尝试一下。

m_audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
m_audioManager.setMode(AudioManager.MODE_IN_CALL);
于 2012-08-14T20:40:12.697 回答