请问 UIWebView 要如何才能播放优酷的视频? [上一个请无视,手贱没写完点了创建]

2016-01-15 05:37:28 +08:00
 dudusprinkler
本人新手,求教各位大神。。

(弱弱问一句,这里可以贴图吗?)
我使用 UIWebView load 一个 html 字符串,中间加了优酷的通用代码,就像下面这样的

<iframe height=498 width=510 src="http://player.youku.com/embed/XNzIyNTU5MTgw" frameborder=0 allowfullscreen></iframe>

可以正常显示,但是不能接受点击事件,具体就是能够正确显示预览图,并且中间有一个播放按钮,但是点击播放却没反应。于是考虑修改 UA ,改成 nexus 6 5.11 ,然后可以点击了。但是仍然有问题,就是点击完,可能会播放一到两段 youku 的广告,播放完直接显示“抱歉,视频出错,请刷新”。或者就是直接报错。

在桌面端也测试了一下,直接用 chrome 打开同样的 html 文件。不能接受点击。用 chrome 的开发者工具,模拟安卓端,可以正常播放,模拟 iphone6 ,不能接受点击。

真机上,安卓真机测试没问题, 6s 测试和模拟器结果相同。


----------------------------------------------------------------------------------------


顺便又测了土豆和腾讯的通用代码
土豆:
<iframe src="http://www.tudou.com/programs/view/html5embed.action?type=2&code=rlqv8bERBuI&lcode=Lqfme5hSolM&resourceId=0_06_05_99" allowtransparency="true" allowfullscreen="true" allowfullscreenInteractive="true" scrolling="no" border="0" frameborder="0" style="width:480px;height:400px;"></iframe>

腾讯:
<iframe frameborder="0" width="640" height="498" src="http://v.qq.com/iframe/player.html?vid=w0019xxrctf&tiny=0&auto=0" allowfullscreen></iframe>

不管该不该 UA 都可以正常播放。
6479 次点击
所在节点    iDev
17 条回复
Elethom
2016-01-15 07:42:30 +08:00
UIWebView 默認的 UA 是不包含「 Safari 」的,手動修改一下就好。
yeyeye
2016-01-15 14:02:21 +08:00
主题发出来了是可以编辑的 没必要再发一个
dudusprinkler
2016-01-15 14:29:36 +08:00
@yeyeye 我试了编辑,等我写完给我提示,你不能编辑此帖。。
yeyeye
2016-01-15 14:34:14 +08:00
@dudusprinkler 哦哦 那就是超过时间或者有人回复了……
dudusprinkler
2016-01-15 14:35:11 +08:00
@Elethom 你好,感谢回复,手动修改成这个
Mozilla/5.0 (iPhone; CPU iPhone OS 9_2_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13D41 Safari/601.1
问题依旧
ostholz
2016-01-15 15:36:54 +08:00
没弄过, 只是猜测一下. youku 的视频支持 HTML 5 视频播放吗? 还是 Flash?
如果是 Flash, 肯定播放不了吧.
dudusprinkler
2016-01-15 15:49:44 +08:00
@ostholz 当然是 html5 ,用 webview 直接加载优酷的网页能放。。自己定义的 html 代码加入优酷的代码却不行
dudusprinkler
2016-01-15 16:33:30 +08:00
又试了一下,用 9.2 模拟器加载桌面上的 html 文件,可以正常播放,看来是使用 webView 的姿势不对
dudusprinkler
2016-01-15 16:41:58 +08:00
发现每次报“抱歉,视频出错,请刷新”错误,都会 提示一下问题。。感觉这个是关键。百度 google 之,无果。
[AVAssetResourceLoadingRequest finishLoading] was sent to an instance of AVAssetResourceLoadingRequest that was already finished. Ignoring.
loveuqian
2016-01-15 16:55:46 +08:00
试下 wkwebview ?
wadahana
2016-01-15 22:29:11 +08:00
youku 的视频检查 cookie, 抓包看看是不是哪个请求没有带 cookie

上个月我们刚遇到, 我们的 APP 通过串改 url 劫持流量,导致播放器用了串改后的 url 在 CookieStorage 里拿不到 cookie ,现象
wadahana
2016-01-15 22:29:36 +08:00
现象跟你这个差不多。
dudusprinkler
2016-01-15 23:38:20 +08:00
@loveuqian 试了一下,貌似和 UIWebView 差不多,还是没法放
dudusprinkler
2016-01-16 10:29:18 +08:00
@wadahana 多谢提醒,我去试试看
wadahana
2016-01-16 10:40:15 +08:00
先随便加载一个 youku 正常的视频页面,再加载你的页面, 即可播放,
移动端的视频是 hls 防盗链视频源检查 cookie ,没有 cookie m3u8 请求返回的是空,所以播放器没反应。
dudusprinkler
2016-01-16 21:32:04 +08:00
@wadahana 多谢指点,你的方法确实是正确的,我试了一下,有效果。感谢答疑!
dudusprinkler
2016-01-16 21:34:42 +08:00
之前说安卓真机可以直接播放,今天又测了一下,也和 ios 一样的问题,优酷的视频会报错。 chrome 模拟安卓一直可以,但毕竟只是模拟器,还是以真机为准。

总结一下,就是优酷播放视频确实如 @wadahana 所说的那样,要 cookie 。试了他的方法,确实有效。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/250865

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX