AVPlayer wird nicht aus der Musikbibliothek abgespielt

Ich versuche, mit AVPlayer einen Titel aus meiner iPhone-Musikbibliothek abzuspielen. Alles scheint spielbereit zu sein, aber der Player gibt einfach keinen Ton von sich. Ich habe eine Weile damit zu kämpfen, jede Hilfe wäre sehr dankbar!

Hinweis: Mir ist klar, dass ich AVAudioPlayer verwenden kann, aber ich möchte die Datei direkt aus meiner Musikbibliothek lesen und nach meinem Verständnis unterstützt AVAudioPlayer dies nicht (ich müsste den Song zuerst exportieren, was mehr Zeit in Anspruch nimmt). Ich kann MPMusicPlayerController nicht verwenden, da das Endziel darin besteht, den Song in NSData umzuwandeln und auf einem anderen Gerät abzuspielen.

Vor allem möchte ich wissen, WARUM dieser Code nicht abgespielt wird:

NSArray *itemsFromQuery = [[MPMediaQuery songsQuery] items];
MPMediaItem *song = [itemsFromQuery objectAtIndex:29];
NSURL *songURL = [song valueForProperty:MPMediaItemPropertyAssetURL];
AVURLAsset *urlAsset = [[AVURLAsset alloc] initWithURL:songURL options:nil];

NSArray *keyArray = [[NSArray alloc] initWithObjects:@"tracks", nil];

[urlAsset loadValuesAsynchronouslyForKeys:keyArray completionHandler:^{

    AVPlayerItem *playerItem = [[AVPlayerItem alloc] initWithAsset:urlAsset];

    AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:playerItem];

    while (true) {
        if (player.status == AVPlayerStatusReadyToPlay && playerItem.status == AVPlayerItemStatusReadyToPlay) {
            break;
        }
    }

    if (player.status == AVPlayerStatusReadyToPlay && playerItem.status == AVPlayerItemStatusReadyToPlay) {
        NSLog(@"Ready to play");
        [player play];
    }
    else 
        NSLog(@"Not ready to play");
}];

Die Ausgabe ist "Wiedergabebereit" und die Eigenschaft "rate" des AVPlayer ist 1.0, nachdem ich die Wiedergabemethode aufgerufen habe. Das MPMediaItem ist vorhanden, und ich kann die valueForProperty-Methode verwenden, um den richtigen Titel, Interpreten usw. zu erhalten. Gibt es Ideen, warum kein Ton vom Player kommt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage