我有一个如下所示的 URL:
assets-library//asset/asset.MOV?id=51CED0CF-223D-4606-81BB-241381BCF2E8&ext=MOV
我正在使用以下代码在 UIWebview 中播放它:
NSString *localVideoHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-mp4\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";
NSString *html = [NSString stringWithFormat:localVideoHTML, videoId, self.frame.size.width, self.frame.size.height];
视频播放完美;我已经用这些 URL 尝试了几个,都没有问题。但是,我希望能够在播放之前确认它没有从设备中删除。我正在使用以下代码来执行此操作:
NSURL *url = [NSURL URLWithString:videoID];
NSError *err;
BOOL isReachable = [url checkResourceIsReachableAndReturnError:&err];
这似乎适用于某些 URL,但不适用于其他 URL。因此,在这一点上,我很困惑我是否可以事前确定 URL 是否指向现有文件(文件可能已从设备中删除,因为 URL 存储在核心中重复使用的数据库)。我从 SO 和其他地方的阅读中了解到,一个看起来像我发布的 URL 的 URL 不能可靠地使用;但是,我已经能够毫无困难地连续播放如上所示的电影。
所以,我的问题是:
a) 鉴于我能够使用类似于上面的 URL 运行我运行的所有测试,我假设它会使用任何这样的 URL 是否是错误的?
和
b)在加载到 webview 之前,是否有一种简单的方法来测试 URL 的“可达性”,所以如果它不是有效的 URL,我可以在我的代码中处理这个问题?
谢谢,提前为您提供任何帮助。