Подтвердить что ты не робот

Кнопка Mute не отключит AVAudioPlayer

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

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

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

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

Любая идея?

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

мои 2 цента для быстрого 3.0:

let sharedSession = AVAudioSession.sharedInstance()

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

или проще:

try? sharedSession.setCategory(AVAudioSessionCategoryAmbient)

Ответ 3

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

enter image description here

В общем, вам просто нужно выяснить, какая категория аудиосеансов соответствует вашим потребностям.