2010-07-21 35 views
6

AVAudioPlayer uygulamasını kullanarak arka planda ses dosyaları dizisi çalmaya çalışıyorum. Uygulama arka planda olmadığında iyi oynar, ancak uygulama arka plana gittiğinde ikinci şarkıyı çalmaz.iphone: arka planda ses çalma listesi çalınıyor?

-(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]]; 

} 

Ben app ayıklanan ve buna ikinci şarkı [mainController.audioPlayer oyun] oynamak üzere olduğu zaman çalamaz anlamına gelir YOK döndürdüğünü görünüyor:

İşte benim kodudur. Peki siz ne düşünüyorsunuz?

kullanıcı ana düğmesine basar ve Uygulama arka giderse

GÜNCELLEME bunun düzgün oynamaya devam etmez gibi görünüyor bazı testlerden sonra

sadece cihaz kilitleri eğer ancak sorun hala

kalır
+0

sizin için küçük bir yardım: Evet ben baktım http://stackoverflow.com/questions/3161635/entering-background-on-ios4-to-play-audio/3161899#3161899 – iwasrobbed

+0

Daha önce bu iş parçacığında ve kodumun bir kısmı oradan. bir sebepten dolayı AVAudioPlayer arka planda olduğunda yeni bir parça çalmayı reddediyor. – Alex1987

+0

@IWasRobbed - Benzer bir sorun yaşadınız. Bazı kodlarını gönderebilir misin? Teşekkürler – Alex1987

cevap