Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS AVPlayer播放/暂停按钮问题_Ios_Avplayer - Fatal编程技术网

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;
}