我正在尝试播放一个从前一个(存储在变量中)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
不仅已创建,而且还可以播放?)