Ich versuche, eine MP3Datei abzuspielen , die an UIVieweine frühere UIView(in einer NSURL *fileURLVariablen gespeichert ) übergeben wird.
Ich initialisiere ein AVPlayermit:
player = [AVPlayer playerWithURL:fileURL];
NSLog(@"Player created:%d",player.status);
Die NSLogDrucke, Player created:0,die ich mir vorgestellt habe, bedeuten, dass es noch nicht spielbereit ist.
Wenn ich auf die Wiedergabe UIButtonklicke, lautet der von mir ausgeführte Code:
-(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??");
}
}
Wenn ich das starte, steige ich immer Error in player??in die Konsole. Wenn ich jedoch die ifBedingung, die prüft, ob AVPlayersie spielbereit ist, durch eine einfache if(!isPlaying)... ersetze , wird die Musik das ZWEITE MAL abgespielt , wenn ich auf die Wiedergabe klicke UIButton.
Das Konsolenprotokoll lautet:
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**
Ich sehe, dass das ZWEITE MAL player.status1 zu halten scheint, was ich vermute AVPlayerReadyToPlay.
Was kann ich tun, damit das Spielen beim ersten Klicken richtig funktioniert UIButton? (dh wie kann ich sicherstellen, dass das AVPlayernicht nur erstellt, sondern auch spielbereit ist?)