Ich versuche, eine MP3
Datei abzuspielen , die an UIView
eine frühere UIView
(in einer NSURL *fileURL
Variablen gespeichert ) übergeben wird.
Ich initialisiere ein AVPlayer
mit:
player = [AVPlayer playerWithURL:fileURL];
NSLog(@"Player created:%d",player.status);
Die NSLog
Drucke, Player created:0,
die ich mir vorgestellt habe, bedeuten, dass es noch nicht spielbereit ist.
Wenn ich auf die Wiedergabe UIButton
klicke, 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 if
Bedingung, die prüft, ob AVPlayer
sie 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.status
1 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 AVPlayer
nicht nur erstellt, sondern auch spielbereit ist?)