kAudioSessionProperty_OtherMixableAudioShouldDuck иногда музыка не отрывается - PullRequest
1 голос
/ 08 июля 2011

Я использую MPMusicPlayerController для воспроизведения музыки с устройства с iPodMusicPlayer. И через равные промежутки времени воспроизводите оповещения с помощью AVPlayer. Код выглядит так

-(void) duckMusic
{
    UInt32 on=1;   
    AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(on),&on);
    AudioSessionSetActive(true);
}

-(void) unDuckMusic
{
    UInt32 on=0;
    AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck,sizeof(on),&on);
    AudioSessionSetActive(false);
}

Я вызываю первый метод непосредственно перед воспроизведением оповещения и вызываю второй метод после получения уведомления AVPlayerItemDidPlayToEndTimeNotification

Проблема, которую я получаю, заключается в том, что иногда музыка не исчезает после завершения оповещения. С некоторой отладкой я обнаружил, что свойство аудио сеанса устанавливается правильно, но по какой-то причине его игнорируют.

Я также заметил во время тестирования, что, когда музыка не исчезает, если я просто приостанавливаю и играю музыку вручную на устройстве, она становится нормальной.

Как справиться с этим программно?

Edit:
Проблема возникает, когда приложение работает в фоновом режиме

1 Ответ

0 голосов
/ 12 августа 2011

Вам не нужно устанавливать свойство в unDuckMusic, деактивации сеанса должно быть достаточно, чтобы позволить смешанному аудио вернуться к нормальной громкости.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...