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.)"
ググったところOSStatus error -43
、指定したパスに利用できるコンテンツがない場合に取得していることがわかりました。3GS デバイスの iPod ライブラリから曲へのパスは次のとおりipod-library://item/item.mp3?id=564371652689620079
です。しかし、それは遊んでいません。助けてください