AVAudioplayer不在iOS 5中播放iPod库中的歌曲

时间:2012-11-26 06:57:28

标签: ios objective-c ios5 avaudioplayer playback

我正在使用AVAudioPlayer创建一个iPhone应用程序。它在iOs 6设备中运行良好。但它不是在iOs 5及更低版本的iPod库中播放歌曲。当我尝试播放来自NSBundle的音乐文件时它正在工作,所以只有当我尝试播放iPod库中的歌曲时才会出现问题。这是我的代码,请检查

if (isPlaying) {
    [audioPlayer stop];
    isPlaying = NO;
}

extern NSMutableArray *songsUrlArray;
extern int selectedSongIndex;

audioPlayer.volume = 1.0;

NSString *urlString = [NSString stringWithFormat:@"%@",[songsUrlArray objectAtIndex:selectedSongIndex]];
NSURL *url = [NSURL URLWithString:urlString];
    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
audioPlayer.delegate = self;
    audioPlayer.numberOfLoops = 0;

    if (audioPlayer == nil)
        NSLog(@"%@",[error description]);
    else{
        [audioPlayer play];
    isPlaying = YES;
}

修改

这是我收到的错误消息,

Error Domain=NSOSStatusErrorDomain Code=-43 "The operation couldn’t be completed. (OSStatus error -43.)"

当我用Google搜索时,我发现当指定路径中没有可用内容时,OSStatus error -43正在获取。以下是3GS设备中来自iPod库的歌曲的路径ipod-library://item/item.mp3?id=564371652689620079。但它不玩。请一些 请帮忙

1 个答案:

答案 0 :(得分:0)

AVAudioPlayer仅获得iOS6中对iPod URL的支持。如果您想支持目标iOS6之前的设备,则必须使用AVPlayer或AVQueuePlayer。

https://developer.apple.com/library/prerelease/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS6.html#//apple_ref/doc/uid/TP40011812-SW1