#mpmovieplayercontroller
#mpmovieplayercontroller
Вопрос:
Мое приложение использовало MPMoviePlayerController для воспроизведения подкастов. В ios4 мне удалось обойти блокировку экрана, остановив воспроизведение подкастов с помощью следующего кода:
OSStatus audioInitStat = AudioSessionInitialize (NULL,NULL,NULL,NULL);
if (audioInitStat != kAudioSessionNoError) {
printf("AudioSession Failed to Initializen");
}
else {
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
audioInitStat = AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), amp;sessionCategory);
}
Возможно, это была глупая удача, что раньше это работало, но факт в том, что теперь, с появлением ios5, проигрыватель фильмов останавливается с блокировкой экрана, чего не было в ios4. Кто-нибудь знает, как разрешить проигрывателю фильмов воспроизводиться во время блокировки экрана. Я не хочу использовать:
[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ];
потому что это просто разрядит батарею (т. Е. Я хочу, чтобы экран стал тусклым). Любые идеи будут высоко оценены. Если я не могу использовать видеопроигрыватель, не знаете ли вы, могу ли я использовать какие-либо другие звуковые возможности ios для воспроизведения подкастов?
Комментарии:
1. Должен быть способ обойти это, потому что приложения spotify и iheart radio по-прежнему работают с экраном блокировки. Есть идеи?
Ответ №1:
В iOS 5.x вам необходимо установить два ключа в вашем файле info.plist.
Сначала добавьте строку в файл с ключом «UIApplicationExitsOnSuspend», сделайте значение логическим и установите для него значение «НЕТ»
Затем добавьте строку с ключом с именем «UIBackgroundModes»
, это будет массив, и вы хотите, чтобы первый элемент имел значение «audio»
Вы также можете установить для своей аудиосессии AVAudioSessionCategoryPlayback для хорошей оценки:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
Это будет работать для аудиофайлов, воспроизводимых с помощью MPMoviePlayerController, но не для видео.
Ответ №2:
После долгих поисков я нашел частичное решение:
Перейдите к вашему info.plist для вашего приложения.
Добавьте ключ «Требуемые фоновые режимы» и установите значение «Приложение воспроизводит аудио» Добавьте ключ «Приложение работает в фоновом режиме» и установите значение «ДА»
Я понятия не имею, где это задокументировано, но это работает.
Это лишь частичное решение. При этом звук может воспроизводиться в фоновом режиме, но вы не можете нажать кнопку home для доступа к другим приложениям. Приложение завершит работу при нажатии кнопки Home.
Комментарии:
1. хотя это частичное решение и работает при его тестировании, оно не проходит этап проверки с помощью xcode organizer при попытке отправить его в app Store (по крайней мере, с ios5)
2. Вы узнали, как это исправить при нажатии кнопки home?
3. @EmreAkman Начиная с iOS6, решения не было. Я пробовал много вещей в течение длительного периода времени, но безуспешно. Я не смотрел на это с iOS7.