我正在尝试播放一个 MP3
文件,它从以前的 UIView
(存储在 NSURL *fileURL
变量中)传递给 UIView
。
我正在用以下命令初始化 AVPlayer
:
player = [AVPlayer playerWithURL:fileURL];
NSLog(@"Player created:%d",player.status);
NSLog
打印 Player created:0,
,我认为这意味着它还没有准备好发挥。
当我点击播放 UIButton
,我运行的代码是:
-(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??");
}
}
当我运行这个命令时,我总是在控制台中得到 Error in player??
。
然而,如果我替换的 if
条件,检查如果 AVPlayer
是准备发挥,与一个简单的 if(!isPlaying)
... ,然后音乐播放第二次我点击发挥 UIButton
。
控制台日志是:
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**
我看到第二次,player.status
似乎持有1,我猜是 AVPlayerReadyToPlay
。
我可以做什么,有发挥正常工作时,我第一次点击发挥 UIButton
?
(即,我如何才能确保 AVPlayer
不仅是创建的,而且还准备好发挥?)