Android 如何控制从服务中播放的音频音量?

Android 如何控制从服务中播放的音频音量?,android,service,android-mediaplayer,volume,Android,Service,Android Mediaplayer,Volume,我的应用程序播放两个音频,第一个来自服务,第二个来自活动。我想在播放第二个音频时降低第一个音频的音量。停止第二个音频后,第一个音频的音量应增加。MediaPlayer有相应的方法。它设置左右声道的音量。 取消静音: 使另一个玩家静音 mediaPlayerB.setVolume(0.0f, 0.0f); 不确定您是如何实现您的MediaPlayer以配合您的服务的,但在我的测试中,我在我的服务类中创建了一个MediaPlayer的实例。为了控制服务类的MediaPlayer实例的数量,在其服务

我的应用程序播放两个音频,第一个来自服务,第二个来自活动。我想在播放第二个音频时降低第一个音频的音量。停止第二个音频后,第一个音频的音量应增加。

MediaPlayer有相应的方法。它设置左右声道的音量。 取消静音:

使另一个玩家静音

mediaPlayerB.setVolume(0.0f, 0.0f);

不确定您是如何实现您的
MediaPlayer
以配合您的服务的,但在我的测试中,我在我的服务类中创建了一个
MediaPlayer
的实例。为了控制服务类的
MediaPlayer
实例的数量,在其服务类之外,我将
MediaPlayer
实例设置为静态成员

所以在我的服务课上,我做了以下几点:

static MediaPlayer mediaPlayer = new MediaPlayer();
MyOwnService.mediaPlayer.setVolume(0.1f, 0.1f);
在我的活动(有自己的音频播放)中,我做到了以下几点:

static MediaPlayer mediaPlayer = new MediaPlayer();
MyOwnService.mediaPlayer.setVolume(0.1f, 0.1f);
所以,当我开始我的活动时,我首先使用了这句话,然后播放活动的音频。请注意,我没有将其静音(0.0f,0.0f)。你可以玩你的花车,直到它适合你的需要。它的范围在0.0f到1.0f之间

在我的活动中,我还实现了
MediaPlayer.OnCompletionListener
,以便知道活动的音频何时完成。此接口有一个实现方法,
onCompletion(MediaPlayer mp)
。音频完成后,将调用此方法

因此,在我的活动中,我也做到了:

@Override
public void onCompletion(MediaPlayer mp) {
    MyOwnService.mediaPlayer.setVolume(1.0f, 1.0f);
}
在这里,我将服务音乐的音量提高到最大,因为它的活动中的音频播放现在已经完成

同样,这一切都在测试中,我不想像那样公开一个静态成员(在一个发布的应用程序中),我会以某种方式封装它,所以有某种类型的访问控制


我希望这会有帮助。

您使用哪些API播放?使用Android MediaPlayer和音频在我的原始文件夹中。简单但有用。谢谢!)