Установка категории AVAudioSession в AppDelegate.m - PullRequest
0 голосов
/ 07 января 2011

Так что мне неприятно задавать этот вопрос, но я потратил немало времени на поиск документации Apple и Google безрезультатно.Я просто пытаюсь установить категорию AVAudioSession для моего приложения ОДИН РАЗ, когда applicationDidFinishLaunching.У меня есть приложение, которое воспроизводит аудиопоток, и я хотел бы, чтобы оно продолжало воспроизводиться, когда приложение переходит в фоновый режим, поэтому я пытаюсь использовать категорию «Воспроизведение».Вот мой код для AppDelegate.m:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
// Set AudioSession
NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&sessionError];
[[AVAudioSession sharedInstance] setActive:YES error:&sessionError];
[[AVAudioSession sharedInstance] setDelegate:self];

// create window and set up navigation controller
[window addSubview:myNavController.view];
[window makeKeyAndVisible];

}

# pragma mark -
# pragma mark AVAudioSession Delegate Methods 
- (void)beginInterruption {
}
- (void)endInterruption {
}
- (void)endInterruptionWithFlags:(NSUInteger)flags {
}
- (void)inputIsAvailableChanged:(BOOL)isInputAvailable {
}

С этим кодом звук исчезает всякий раз, когда я нажимаю кнопку «Домой», помещая приложение в фоновом режиме.Любая помощь очень ценится, я надеюсь, что это быстрый ответ для любого, кто делал это раньше.

Ответы [ 2 ]

2 голосов
/ 18 января 2011

Сначала добавьте ключ UIBackgroundModes в файл Info.plist, если вы этого еще не сделали. Подробнее здесь .

Если вы уже сделали это, какую платформу вы используете для воспроизведения мультимедиа?

1 голос
/ 30 января 2011

Спасибо за помощь, Ирэн. Вы в значительной степени правы в своем ответе, за исключением того, что я просто хотел предоставить шаги, которые были необходимы для его работы для меня. Я прочитал документацию Apple, которую вы опубликовали, и по какой-то причине она упустила следующие важные детали:

  1. Когда вы добавляете ключ UIBackgroundModes в файл .plist, вы должны сделать его массивом.
  2. Значение для элемента 0 массива должно быть аудио.

Конечно, ваше приложение должно также позаботиться об установке своей категории аудио-сеанса в сочетании с установкой этой клавиши.

...