我的问题不是关于检查直播URL是否有效,而是关于它是否可播放。
目前,我将扩展名为.m3u8的直播视频URL加载到UIWebView
中。
有时,直播无法播放,但仍可访问。我想以某种方式确定该网址是否可播放,并在屏幕上显示一条消息,指出"直播下来......"而不是带有播放按钮的灰色UIWebView
窗口,点击时该按钮不执行任何操作。
这可能吗,或者任何人都可以建议另一种方法吗?
谢谢
我建议使用指定的播放器流式传输这些文件。如果使用 WebView 播放这些文件,则可以先将它们加载到播放器中,仅用于状态检查。下面是一个关于如何做到这一点MPMoviePlayerController
示例:
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:audioUrl];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(loadStateDidChange:) name:MPMoviePlayerLoadStateDidChangeNotification
object:player];
if ([player respondsToSelector:@selector(loadState)])
{
...
}
检查loadState
将告诉您流的状态:
enum {
MPMovieLoadStateUnknown = 0,
MPMovieLoadStatePlayable = 1 << 0,
MPMovieLoadStatePlaythroughOK = 1 << 1,
MPMovieLoadStateStalled = 1 << 2,
};
由于MPMoviePlayerController
在iOS 9上已弃用,因此我建议使用AVPlayerViewController
搜索上述等效版本以获取最新的iOS版本。