How to play sounds in locked mode on iPhone

2019-07-18 21:07发布

问题:

Everybody knows the standard procedure to keep your app alive, after the user pressed the lock button (silent sound). If I start a sound with AVAudioPlayer (before the iphone is locked), the sound plays till it's end (after locking). The app is still running. If I try to start another sound while the iPhone is locked, it will never get played. All the other things work as well but the sound doesn't.

How can I play a sound while the iphone is locked?

回答1:

If the problem is that your app is doing to sleep after the screen locks, then this question is already answered here and here on SO



回答2:

I'm not sure where your problem is, but have you set up the audio category to allow mixing?

const UInt32 categoryProp = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(categoryProp), &categoryProp);

UInt32 category = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);

const UInt32 setProperty_YES = 1;
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(setProperty_YES), &setProperty_YES);


回答3:

Now all works fine! I missed a log statement. It seems I flooded the audio buffer!

Thanks to all who tried to help me fixing this.