我正在尝试播放从上一个MP3
传递到的文件(存储在变量中)。UIView
UIView
NSURL *fileURL
我正在初始化一个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
不仅创建了,而且还可以播放?)