мне нужно воспроизвести простой звук с помощью AVAudioPlayer, когда экран заблокирован. Как я могу это сделать, пожалуйста, помогите
как воспроизводить музыку с помощью AVAudioPlayer при заблокированной ОС экрана
Ответы (2)
Ответ на этот вопрос был дан здесь раньше. Как подсказывает вещь, вам нужно настроить аудиосеанс, как в этом примере.
UInt32 category = kAudioSessionCategory_MediaPlayback;
OSStatus result = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
sizeof(category), &category);
if (result){
DebugLog(@"ERROR SETTING AUDIO CATEGORY!\n");
}
result = AudioSessionSetActive(true);
if (result) {
DebugLog(@"ERROR SETTING AUDIO SESSION ACTIVE!\n");
}
Первое: добавьте в свой проект следующие фреймворки.
AudioToolbox, CoreAudio, MediaPlayer AVFoundation.
Во-вторых: добавьте в файл info.plist новый ключ
Необходимые фоновые режимы = приложение воспроизводит звук
В-третьих: создайте метод keepAwakeForAudio и вызовите его сразу после воспроизведения аудио.
- (недействительно) keepAwakeForAudio
{UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory) и sessionCategory); AudioSessionSetActive (истина); }
//////
NSURL * url = [NSURL fileURLWithPath: [NSString stringWithFormat: @ "% @ / rain1_Rain_on_Street.m4a", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;
if (audioPlayer == nil)
NSLog([error description]);
else
[audioPlayer play];
[self **keepAwakeForAudio**];