Estoy tratando de reproducir un MP3archivo que se pasa a un UIViewanterior UIView(almacenado en una NSURL *fileURLvariable).
Estoy inicializando un AVPlayercon:
player = [AVPlayer playerWithURL:fileURL];
NSLog(@"Player created:%d",player.status);
Las NSLogimpresiones Player created:0,que imaginé significan que aún no está listo para jugar.
Cuando hago clic en reproducir UIButton, el código que ejecuto es:
-(IBAction)playButtonClicked
{
NSLog(@"Clicked Play. MP3:%@",[fileURL absoluteString]);
if(([player status] == AVPlayerStatusReadyToPlay) && !isPlaying)
// if(!isPlaying)
{
[player play];
NSLog(@"Playing:%@ with %d",[fileURL absoluteString], player.status);
isPlaying = YES;
}
else if(isPlaying)
{
[player pause];
NSLog(@"Pausing:%@",[fileURL absoluteString]);
isPlaying = NO;
}
else {
NSLog(@"Error in player??");
}
}
Cuando ejecuto esto, siempre entro Error in player??en la consola. Sin embargo, si sustituyo la ifcondición que comprueba si AVPlayerestá listo para reproducirse, con un simple if(!isPlaying)..., la música se reproduce la SEGUNDA VEZ que hago clic en reproducir UIButton.
El registro de la consola es:
Clicked Play. MP3:http://www.nimh.nih.gov/audio/neurogenesis.mp3
Playing:http://www.nimh.nih.gov/audio/neurogenesis.mp3 **with 0**
Clicked Play. MP3:http://www.nimh.nih.gov/audio/neurogenesis.mp3
Pausing:http://www.nimh.nih.gov/audio/neurogenesis.mp3
Clicked Play. MP3:http://www.nimh.nih.gov/audio/neurogenesis.mp3
2011-03-23 11:06:43.674 Podcasts[2050:207] Playing:http://www.nimh.nih.gov/audio/neurogenesis.mp3 **with 1**
Veo que la SEGUNDA VEZ player.statusparece contener 1, que supongo que es AVPlayerReadyToPlay.
¿Qué puedo hacer para que la reproducción funcione correctamente la primera vez que hago clic en la reproducción UIButton? (es decir, ¿cómo puedo asegurarme de que AVPlayerno solo se haya creado, sino que también esté listo para jugar?)