iOS AVPlayer播放/暂停按钮问题
我正在使用iOS AVPlayer播放/暂停按钮问题,ios,avplayer,Ios,Avplayer,我正在使用AVPlayer使用以下代码从Internet播放实时流: NSString *u = @"http://192.192.192.192:8036"; NSURL *url = [NSURL URLWithString:u]; radiosound = [[AVPlayer alloc] initWithURL:url]; [radiosound play]; 我有一个按钮: [radiosound play]; 然后暂停: [radiosound pause]
AVPlayer
使用以下代码从Internet播放实时流:
NSString *u = @"http://192.192.192.192:8036";
NSURL *url = [NSURL URLWithString:u];
radiosound = [[AVPlayer alloc] initWithURL:url];
[radiosound play];
我有一个按钮:
[radiosound play];
然后暂停:
[radiosound pause];
我的问题是,我只想使用一个按钮播放/暂停,但当我使用此代码时
if (radiosound.isPlaying) {
[radiosound pause];
} else {
[radiosound play];
}
我的应用程序崩溃,因为AVPlayer无法识别“iPlay”
有什么提示吗?
AVPlayer
没有isplay
属性。使用rate
属性(0.0表示停止,1.0表示播放)
您可以查看
AVPlayer
类参考。经过一些研究,我发现当没有网络连接时,AVPlayer
在收到-play
消息后仍然将速率设置为1.0
因此,我还检查了currentItem并修改了我的方法,如下所示:
-(BOOL)isPlaying
{
if (self.player.currentItem && self.player.rate != 0)
{
return YES;
}
return NO;
}
如果您认为这种方法有问题,请分享您的意见。有些人说,即使暂停,在飞行模式下,它仍然是1.0。将浮动与1.0进行比较可能不是一个好主意。也许如果(radiosound.rate>0.99)?@SoftDesigner的观点不错,但AFAICT 0.0和1.0都可以在中精确表示。您可以使用AVPlayer的timeControlStatus属性
player.timeControlStatus==.paused player.timeControlStatus==.playing
检查currentItem有什么意义?暂停时不应为零。物品不会因为你暂停播放器而消失。
-(BOOL)isPlaying
{
if (self.player.currentItem && self.player.rate != 0)
{
return YES;
}
return NO;
}