как воспроизводить музыку с помощью AVAudioPlayer при заблокированной ОС экрана

мне нужно воспроизвести простой звук с помощью AVAudioPlayer, когда экран заблокирован. Как я могу это сделать, пожалуйста, помогите


person mobile.jugnu    schedule 15.07.2011    source источник


Ответы (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");
}
person Mihai Fratu    schedule 15.07.2011

Первое: добавьте в свой проект следующие фреймворки.

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**];
person bpolat    schedule 19.08.2013