是否可以在将直播 URL 加载到 UIWebView 之前检查它是否可播放



我的问题不是关于检查直播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版本。

最新更新