2014-01-27 2 views
3

Я пытаюсь использовать AVFoundationFramework.AVAudioPlayer не воспроизводится, когда приложение переходит на задний план

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

Конкретные шаги реализации являются:

  1. Добавление фоновых задач в .plist

    enter image description here

  2. Настройка AVAudioPlayer

    self.objAVAudioPlayer = [[AVAudioPlayer alloc]initWithData:mp3Data error:&error]; 
    self.objAVAudioPlayer.delegate = self; 
    
  3. Настройка AVAudioSession

    if([self.objAVAudioPlayer prepareToPlay]) 
    { 
        AVAudioSession *objAVAudioSession = [AVAudioSession sharedInstance]; 
        [objAVAudioSession setCategory:AVAudioSessionCategoryPlayback error:&error]; 
        [objAVAudioSession setActive:YES 
                error:nil]; 
        [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
        [self.objAVAudioPlayer play]; 
    } 
    

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

База SDK iOS 7.0.

Любая идея относительно того, чего я не хватает? Любая помощь будет оценена.

+0

Что вы имеете в своем '- (пустоте) applicationDidEnterBackground : (Приложение UIApplication *)?? – Aluminum

+0

не реализовали какой-либо код в 'applicationDidEnterBackground' – footyapps27

+0

Есть ли у вас право на использование inter-app audio с вашим идентификатором приложения? – ZeMoon

ответ

1

Для воспроизведения аудио в фоновом режиме, вы должны настроить AVAudioSession и добавить этот код

UIBackgroundTaskIdentifier backgroundTask = [application beginBackgroundTaskWithExpirationHandler:^{ 
    [application endBackgroundTask:backgroundTask]; //Tell the system that we are done with the tasks 
    backgroundTask = UIBackgroundTaskInvalid; //Set the task to be invalid 
}]; 

в ваш AppDelegate.m класса в методе

- (void)applicationDidEnterBackground:(UIApplication *)application { 
    //Some code 
} 
+0

Небольшое обновление - код, который я использовал, отлично работает в устройствах iOS. Это была проблема только в симуляторе. – footyapps27

Смежные вопросы