Независимый регулятор громкости AVAudioPlayer и MPMusicPlayerController в приложении iOS.

В моем приложении я воспроизводю загруженный звук с помощью AVAudioPlayer, одновременно воспроизводя звук из музыкальной библиотеки iPod пользователя с помощью MPMusicPlayerController.

Мне нужно настроить громкость экземпляра AVAudioPlayer так, чтобы он был громче, чем звук, исходящий из MPMusicPlayerController.

Проблема в том, что когда я регулирую свойство Volume AVAudioPlayer, оно также регулирует громкость MPMusicPlayerController.

Есть ли какое-нибудь решение, которое позволило бы мне независимо регулировать громкость этих двух плееров?

Если нет, то есть ли другой метод, который я должен использовать для этого? Любая помощь приветствуется.


person Vibhor Goyal    schedule 28.07.2011    source источник


Ответы (1)


Взгляните на документацию для AVAudioSession. Например, в Руководство по программированию AVAudioSession гласит следующее:

"Наконец, вы можете улучшить категорию, чтобы автоматически понижать громкость другого звука при воспроизведении звука. Это можно использовать, например, в приложении для упражнений. Допустим, пользователь тренируется вместе со своим iPod, когда ваше приложение хочет наложить словесное сообщение, например: «Вы гребли 10 минут». Чтобы сообщение из вашего приложения было разборчивым, примените свойство kAudioSessionProperty_OtherMixableAudioShouldDuck к аудиосеансу. Когда происходит приглушение, громкость всего остального звука на устройстве, кроме звука телефона, снижается ".

Думаю, это решит твою проблему. Документация по инициализации AVAudioSession и установке его категорий и свойств довольно ясна и проста в использовании; у вас не должно быть проблем.

person MiguelB    schedule 29.07.2011