2012-01-19 1 views
1

Как продолжить воспроизведение звука в iPhone, когда оно автоматически блокируется или пользователь блокирует телефон?Продолжить воспроизведение звука, когда iPhone заблокирован

Я уже пытался

session = [AVAudioSession sharedInstance]; 
[session setCategory:AVAudioSessionCategoryPlayback error:NULL]; 

, но это не похоже на работу.

ответ

1

я, наконец, понял, как это сделать!

Прежде всего, включите эти рамки в свой проект: AudioToolbox, CoreAudio, MediaPlayer и AVFoundation. Импортируйте их все в viewController, где будет размещен ваш плеер. После того, как вы выделили и начали играть аудио, вставьте следующий код:

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; 
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory); 
AudioSessionSetActive(true); 

И, наконец, перейти к файлу Info.plist приложения и добавить строку с именем UIBackgroundModes. Новая строка будет массивом и будет содержать 1 элемент, элемент 0. Для этого вы просто устанавливаете значение как аудио. И вы сделали! Наслаждайтесь, что вы играете в фоновое аудио!

0

This link должен помочь.

Вы должны предотвратить приложение от входа в режим глубокого сна:

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"); 
} 
+0

Спасибо за ответ! Но когда я пытаюсь скомпилировать код, я получаю некоторые ошибки и предупреждения, которые я не совсем понимаю. FIrst, XCode считает, что 'kAudioSessionCategory_MediaPlayback' была попыткой написать' AVAudioSessionCategoryPlayback'. Затем я получаю сообщение об ошибке использования незаявленного идентификатора «kAudioSessionCategory_MediaPlayback». И предупреждение, говорящее «неявное объявление функции« AudioSessionSetProperty », неверно на C99. –