我正在使用AVPlayer以下代码从Internet播放实时流:
NSString *u = @"http://192.192.192.192:8036";
NSURL *url = [NSURL URLWithString:u];
radiosound = [[AVPlayer alloc] initWithURL:url];
[radiosound play];
Run Code Online (Sandbox Code Playgroud)
我有一个按钮播放:
[radiosound play];
Run Code Online (Sandbox Code Playgroud)
和暂停:
[radiosound pause];
Run Code Online (Sandbox Code Playgroud)
我的问题是我只想使用一个按钮Play/Pause,但是当我使用这个代码时
if (radiosound.isPlaying) {
[radiosound pause];
} else {
[radiosound play];
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序崩溃,因为AVPlayer无法识别"isPlaying".
有小费吗?
gca*_*amp 38
AVPlayer没有isPlaying财产.使用rate属性(0.0表示已停止,1.0正在播放).
if (radiosound.rate == 1.0) {
[radiosound pause];
} else {
[radiosound play];
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里查看AVPlayer课程参考.
经过一些研究后,我发现当没有网络连接时,AVPlayer仍然会在收到-play消息后将速率设置为1.0 .
因此,我也检查currentItem并修改我的方法:
-(BOOL)isPlaying
{
if (self.player.currentItem && self.player.rate != 0)
{
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
如果您认为这种方法有问题,请分享您的意见.
| 归档时间: |
|
| 查看次数: |
15469 次 |
| 最近记录: |