Как контролировать громкость звука, воспроизводимого с Сервиса?

Мои приложения воспроизводят два звука, сначала от службы, и от активности. Я хочу уменьшить громкость первого звука при воспроизведении второго аудио. После остановки второго звука громкость первого звука должна быть увеличена.

У MediaPlayer есть методы для этого. Он устанавливает громкость для левого и правого каналов. заглушены:

mediaPlayerA.setVolume(1.0f, 1.0f); 

Отключить другого игрока

 mediaPlayerB.setVolume(0.0f, 0.0f); 

Не знаете, как вы реализовали свой MediaPlayer чтобы совпасть с вашим сервисом, но в моем тесте я создал экземпляр MediaPlayer в моем классе обслуживания. Чтобы контролировать объем экземпляра MediaPlayer класса службы, вне его класса обслуживания, я устанавливал экземпляр MediaPlayer как статический член.

Поэтому в моем классе обслуживания я сделал это:

 static MediaPlayer mediaPlayer = new MediaPlayer(); 

В моей деятельности (которая имеет собственную звуковую игру) я сделал это:

 MyOwnService.mediaPlayer.setVolume(0.1f, 0.1f); 

Итак, когда я вскочил в свою деятельность, я сначала использовал это заявление, прежде чем играть аудиозапись активности. Заметьте, я не отключил звук (0.0f, 0.0f). Вы можете поиграть со своими поплавками, пока это не подойдет вашим потребностям. Он находится в диапазоне от 0.0f до 1.0f.

В моей работе я также реализовал MediaPlayer.OnCompletionListener , так что я знаю, когда звук для Activity был завершен. Этот интерфейс имеет один метод для реализации onCompletion(MediaPlayer mp) . Этот метод вызывается после завершения звука.

Поэтому в своей деятельности я также сделал это:

 @Override public void onCompletion(MediaPlayer mp) { MyOwnService.mediaPlayer.setVolume(1.0f, 1.0f); } 

Здесь я поднял объем служебной музыки до макс, так как воспроизведение звука в его действиях завершено.

Опять же, все это было в тестировании, и я бы не хотел публиковать статический член так же (в опубликованном приложении), я бы каким-то образом инкапсулировал его, так что есть некоторый тип контроля доступа.

Я надеюсь, что это было полезно.