我正在尝试玩一个MP3
传递给的文件UIView
从以前的UIView
(存储在NSURL *fileURL
多变的)。
我正在初始化一个AVPlayer
with:
player = [AVPlayer playerWithURL:fileURL];
NSLog(@"Player created:%d",player.status);
The NSLog
prints 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
不仅是创建出来的,而且还可以玩吗?)