AVAudioPlayer не начинает играть в фоновом режиме
Я используюAVAudioPlayer
а такжеNSFileHandle
делать потоковое аудио. Основная идея заключается в том, что я сохраняю потоковые аудиоданные на устройство с файловой системой, а затем используюAVAudioPlayer
для воспроизведения только что сохраненного файла.AVAudioPlayer
может по-прежнему воспроизводить этот файл, даже если идет потоковая передача.
у меня естьUIButton
начать потоковую передачу / загрузку. Когда загруженные данные накапливаются до определенного количества байтов,AVAudioPlayer
будет играть (метод "играть"AVAudioPlayer
срабатывает) автоматически. У меня такой вопрос: я нажимаю кнопку, чтобы начать потоковую передачу / загрузку, а затем очень скоро нажимаю кнопку «Домой» на iPhone, чтобы приложение перешло в фоновый режим. Загрузка продолжает работать в фоновом режиме, но метод "воспроизведения"AVAudioPlayer
возвращает «NO», что означает, что метод «play» не воспроизводит аудио.
я добавилAVAudioSession
связанный код для метода init моего аудиоплеера:
- (id) initWithURL:(NSString *) downloadedMusicURL
{
if ((self = [super init]))
{
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
CFURLRef url = CFURLCreateWithFileSystemPath (NULL, (CFStringRef)downloadedMusicURL, kCFURLPOSIXPathStyle, FALSE);
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:CFBridgingRelease(url) error:nil];
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
}
return self;
}
Также в info.plist я добавил пункт «Приложение проигрывает аудио» для клавиши «Требуемые режимы фона». Тем не менее, «игра» все еще не вызывается должным образом в фоновом режиме. Что еще я пропустил? Заранее большое спасибо.