Кнопка отключения звука не будет отключать AVAudioPlayer - PullRequest
11 голосов
/ 19 февраля 2012

Мне нужно зациклить воспроизведение файла .caf в моем приложении для iPhone.

AVAudioPlayer выглядит многообещающе. Но есть одна проблема. Он не остановится и не отключится, даже если я нажму кнопку отключения звука на iPhone.

И я понимаю, что не было бы способа программно узнать, нажата ли эта кнопка отключения звука в iOS 5.

Итак, мне нужно знать о свойствах AVAudioPlayer или AVAudioSession. Или, может быть, мне придется рассмотреть другие библиотеки для циклического воспроизведения моего файла .caf.

Есть идеи?

Ответы [ 3 ]

25 голосов
/ 19 февраля 2012

Я понял, что это потому, что у меня была эта строка кода

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];

Затем я изменил его на

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];

Тогда кнопка отключения звука сработает и остановит мой AVAudioPlayer ...

0 голосов
/ 25 мая 2019

Из документов :

enter image description here

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

0 голосов
/ 05 февраля 2017

мои 2 цента за swift 3.0:

let sharedSession = AVAudioSession.sharedInstance()

do {
    try sharedSession.setCategory(AVAudioSessionCategoryAmbient)
} catch _{
    return false
}

или проще:

try? sharedSession.setCategory(AVAudioSessionCategoryAmbient)
...