iPhone: проигрывание аудио плей-листа в фоновом режиме?

Я пытаюсь играть последовательность звуковых файлов в фоновом режиме с помощью AVAudioPlayer. Когда приложение не в фоновом режиме, оно играет хорошо, но когда приложение перейдет к фону, оно не будет играть вторую песню.

Вот мой код:

-(void)playAudio:(NSString *)path{
    NSURL *url = [NSURL fileURLWithPath:path];

    NSError *error;
    AVAudioPlayer *ap = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive: YES error: nil];
    ap.delegate = self;

    mainController.audioPlayer = ap;
    [ap release];


    if (mainController.audioPlayer == nil)
        NSLog([error description]);
    else{


        UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;

        [mainController.audioPlayer prepareToPlay];

        if([mainController.audioPlayer play]){

            newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];

        }

        if (newTaskId != UIBackgroundTaskInvalid && bgTaskId != UIBackgroundTaskInvalid)
            [[UIApplication sharedApplication] endBackgroundTask: bgTaskId];

        bgTaskId = newTaskId;
    }

}

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
    NSLog(@"finished now next...");
    [self playAudio:[self getNextAudio]];

}

Я отладил приложение, и кажется, что, когда это собирается играть вторую песню [mainController.audioPlayer игра] возвраты нет, что означает, это не может играть. Таким образом, что Вы думаете?


ОБНОВЛЕНИЕ

После некоторого тестирования кажется, что это действительно продолжает играть правильно, только если устройство блокирует, но если пользователь нажимает кнопку "Домой", и приложение переходит к фону, которым все еще остается проблема

6
задан Alex1987 23 July 2010 в 18:59
поделиться