2013-07-09 57 views
1

當試圖播放歌曲文件(通過MPMediaPickerController選擇)時出現上述錯誤。在iOS6中工作正常,但在iOS5上出現錯誤。這裏的代碼:AVAudioPlayer錯誤域= NSOSStatusErrorDomain代碼= -43

DLog(@"song: %@", self.customSongUrl); //always logs a valid url such as ipod-library://item/item.mp3?id=-1890948386979134309 

    if (self.customSongUrl) { 
     AVAudioSession *session = [AVAudioSession sharedInstance]; 
     [session setCategory:AVAudioSessionCategoryPlayback error:nil]; 

     double delayInSeconds = 1.0; 
     dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); 
     dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
      NSError *error = nil; 
      self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:self.customSongUrl error:&error]; 
      if (!self.audioPlayer) 
      { 
       NSLog(@"AVAudioPlayer could not be established: %@", error); //results in Error Domain=NSOSStatusErrorDomain Code=-43 "The operation couldn’t be completed. (OSStatus error -43.)"      
      } 
      [self.audioPlayer prepareToPlay]; 
      [self.audioPlayer setNumberOfLoops:-1]; 
      [self.audioPlayer play]; 
     }); 
    } 

從我所做的研究,錯誤-43表明該文件不存在。但是這個文件是從MPMediaPickerController的iTunes庫中選擇的。再次,這個錯誤只發生在iOS5上。那麼爲什麼iOS5會認爲這首歌不存在?

以供參考,這是怎麼了,我從媒體選擇器獲取歌曲網址:

- (void)mediaPicker:(MPMediaPickerController *) mediaPicker didPickMediaItems:(MPMediaItemCollection *) collection 
{ 
    MPMediaItem *item = [[collection items] objectAtIndex:0]; 
    self.customSongUrl = [item valueForProperty:MPMediaItemPropertyAssetURL]; 

    [self dismissViewControllerAnimated:YES completion:NULL]; 

} 

回答

0

我有一個類似的問題,清盤是我的MP4文件的目標成員複選框選中了這個問題,一旦我檢查它,文件播放完美。

相關問題