13

我正在使用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 无法识别“isPlaying”。

有小费吗?

4

2 回答 2

38

AVPlayer没有isPlaying财产。使用rate属性(0.0 表示停止,1.0 表示播放)。

if (radiosound.rate == 1.0) {         
    [radiosound pause]; 
} else {                
     [radiosound play]; 
}

您可以在此处AVPlayer查看类参考。

于 2011-09-07T19:42:41.533 回答
5

经过一番研究,我发现在没有网络连接的情况下,AVPlayer收到-play消息后仍然将速率设置为 1.0。

因此,我还检查了 currentItem 并像这样修改了我的方法:

-(BOOL)isPlaying
{
    if (self.player.currentItem && self.player.rate != 0)
    {
        return YES;
    }
    return NO;
}

如果您认为这种方法有问题,请分享您的意见。

于 2013-05-31T13:19:00.223 回答