O AVPlayer não está tocando na biblioteca de músicas

Estou tentando reproduzir uma música da minha biblioteca de músicas do iPhone usando o AVPlayer. Tudo parece pronto para jogar, mas o jogador simplesmente não faz nenhum som. Eu tenho lutado com isso por um tempo, qualquer ajuda seria muito apreciada!

Nota: Eu percebi que poderia usar o AVAudioPlayer, mas gostaria de ler o arquivo diretamente da minha biblioteca e, no meu entender, o AVAudioPlayer não suporta isso (eu teria que exportar a música primeiro, ocupando mais tempo). Eu não posso usar MPMusicPlayerController porque o objetivo final é transformar a música em NSData e reproduzi-lo em outro dispositivo.

Acima de tudo, gostaria de saber por que este código não está sendo reproduzido:

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");
}];

A saída é "Pronto para jogar", e a propriedade "rate" do AVPlayer é 1.0 depois que eu chamo o método play. O MPMediaItem existe, e eu posso usar o método valueForProperty para obter o título correto, artista, etc. Alguma idéia de por que nenhum som está vindo do player?

questionAnswers(2)

yourAnswerToTheQuestion