3

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です。しかし、それは遊んでいません。助けてください

4

1 に答える 1

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

于 2015-07-03T00:10:23.447 に答える