Play sound on iOS 9 in silent mode

2019-03-18 19:32发布

问题:

In iOS 9 (Xcode 7, Swift 2.0) I'm trying to play a sound in silent mode using the following code:

try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: .MixWithOthers)
try! AVAudioSession.sharedInstance().setActive(true)
AudioServicesPlayAlertSound(1005)

According to other answers and Apple's documentation I thought this should work but it doesn't play a sound on iOS 9 when in silent mode. It does play it when not in silent mode. From Apple's doc:

AVAudioSessionCategoryPlayback -- Playback only. Plays audio even with the screen locked and with the Ring/Silent switch set to silent. Use this category for an app whose audio playback is of primary importance.

Am I missing something here or is there a other/new way to get this to work?

回答1:

This is my code:

do {
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: AVAudioSessionCategoryOptions.MixWithOthers)
    }
catch {
        // report for an error
    }

AudioPlayer.play()

It works on my iPhone.

Good luck!



回答2:

For Swift 3.2:

do {
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.duckOthers)
    }
    catch {
        // report for an error
    }


标签: ios audio silent