Воспроизведение звука в фоновом режиме и отключение звука с помощью переключателя отключения звука

Можно ли воспроизводить звук с помощью AVAudioPlayer в фоновом режиме, а также отключать его с помощью переключателя отключения звука на iPhone?

Я знаю, что могу воспроизводить звук в фоновом режиме, если я установил AVAudioSessionCategoryPlayback, но он не будет отключаться с помощью переключателя отключения звука. Или, если я установлю AVAudioSessionCategoryAmbient - он будет отключен переключателем, но также, например, при нажатии кнопки домой - и я не хочу, чтобы это произошло.

ОБНОВЛЕНИЕ: у меня есть «Приложение воспроизводит звук или передает аудио ..» в «Требуемые фоновые режимы» - поэтому, когда я устанавливаю AVAudioSessionCategoryPlayback, он продолжает воспроизведение в фоновом режиме даже после нажатия кнопки «Домой», но переключатель отключения звука не действует.


person Stals    schedule 18.09.2013    source источник
comment
Вы смотрели UIBackgroundModes. Я думаю, вы можете использовать его с AVAudioSessionCategoryAmbient. Но не уверен, будет ли работать и с кнопкой «Домой».   -  person markhunte    schedule 18.09.2013
comment
Я не уверен, но я не думаю, что это возможно без AudioSessionCategories, и будьте осторожны, ваше приложение может быть отклонено Apple, если вы решите это каким-то хитрым способом. Удачи   -  person Yucel Bayram    schedule 18.09.2013
comment
@yucelbayram, я не говорил, что не хочу использовать AudioSessionCategories. Если у вас есть решение, использующее их - будет здорово.   -  person Stals    schedule 18.09.2013
comment
Я не пробовал отключить звук с помощью кнопки переключения, прежде чем извините, но вы проверили эти ответы? может есть что-то полезное для вас. stackoverflow.com/ questions / 287543 /   -  person Yucel Bayram    schedule 18.09.2013
comment
@yucelbayram Я просто подумал, что это нормальное поведение, когда вы можете отключить весь звук с помощью переключателя отключения звука, даже если что-то играет в фоновом режиме.   -  person Stals    schedule 18.09.2013


Ответы (1)


Нет, желаемое поведение невозможно с доступными категориями AVAudioSession. Это могло быть сделано специально, чтобы избежать нежелательной потери батареи или затрат на передачу данных для пользователей. Конечно, пользователи могут решить уменьшить громкость до нуля с помощью кнопок регулировки громкости.

Поскольку также больше нет общедоступного API для определения состояния переключателя без звука / отключения звука, обходные пути / хаки сложны и могут быть отклонены при отправке в App Store.

person Jerrot    schedule 10.02.2017