Próbuję odtworzyć MP3plik, który jest przekazywany UIViewz poprzedniego UIView(przechowywany w NSURL *fileURLzmiennej).
Inicjalizuję za AVPlayerpomocą:
player = [AVPlayer playerWithURL:fileURL];
NSLog(@"Player created:%d",player.status);
Te NSLogodciski Player created:0,który Pomyślałem oznacza, że nie jest jeszcze gotowy do gry.
Kiedy klikam przycisk odtwarzania UIButton, uruchamiany kod to:
-(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??");
}
}
Kiedy to uruchamiam, zawsze wchodzę Error in player??do konsoli. Jeśli jednak zmienię ifwarunek, który sprawdza, czy AVPlayerjest gotowy do odtwarzania, prostym if(!isPlaying)..., wtedy muzyka jest odtwarzana DRUGI RAZ, kiedy klikam grę UIButton.
Dziennik konsoli to:
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**
Widzę, że DRUGI CZAS player.statuswydaje się mieć 1, co, jak sądzę, jest AVPlayerReadyToPlay.
Co mogę zrobić, aby gra działała prawidłowo po pierwszym kliknięciu UIButton? (tj. jak mogę się upewnić, że AVPlayerplik nie jest tylko utworzony, ale także gotowy do gry?)