请问 UIWebView 要如何才能播放优酷的视频? [上一个请无视,手贱没写完点了创建] - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
dudusprinkler
V2EX    iDev

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

  •  1
     
  •   dudusprinkler 2016 年 1 月 15 日 7248 次点击
    这是一个创建于 3732 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人新手,求教各位大神。。

    (弱弱问一句,这里可以贴图吗?)
    我使用 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 都可以正常播放。
    17 条回复    2016-01-16 21:34:42 +08:00
    Elethom
        1
    Elethom  
       2016 年 1 月 15 日 via iPhone   1
    UIWebView 默的 UA 是不包含「 Safari 」的,手修改一下就好。
    yeyeye
        2
    yeyeye  
       2016 年 1 月 15 日 via Android
    主题发出来了是可以编辑的 没必要再发一个
    dudusprinkler
        3
    dudusprinkler  
    OP
       2016 年 1 月 15 日
    @yeyeye 我试了编辑,等我写完给我提示,你不能编辑此帖。。
    yeyeye
        4
    yeyeye  
       2016 年 1 月 15 日
    @dudusprinkler 哦哦 那就是超过时间或者有人回复了……
    dudusprinkler
        5
    dudusprinkler  
    OP
       2016 年 1 月 15 日
    @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
        6
    ostholz  
       2016 年 1 月 15 日
    没弄过, 只是猜测一下. youku 的视频支持 HTML 5 视频播放吗? 还是 Flash?
    如果是 Flash, 肯定播放不了吧.
    dudusprinkler
        7
    dudusprinkler  
    OP
       2016 年 1 月 15 日
    @ostholz 当然是 html5 ,用 webview 直接加载优酷的网页能放。。自己定义的 html 代码加入优酷的代码却不行
    dudusprinkler
        8
    dudusprinkler  
    OP
       2016 年 1 月 15 日
    又试了一下,用 9.2 模拟器加载桌面上的 html 文件,可以正常播放,看来是使用 webView 的姿势不对
    dudusprinkler
        9
    dudusprinkler  
    OP
       2016 年 1 月 15 日
    发现每次报“抱歉,视频出错,请刷新”错误,都会 提示一下问题。。感觉这个是关键。百度 google 之,无果。
    [AVAssetResourceLoadingRequest finishLoading] was sent to an instance of AVAssetResourceLoadingRequest that was already finished. Ignoring.
    loveuqian
        10
    loveuqian  
       2016 年 1 月 15 日 via iPhone
    试下 wkwebview ?
    wadahana
        11
    wadahana  
       2016 年 1 月 15 日
    youku 的视频检查 cookie, 抓包看看是不是哪个请求没有带 cookie

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

    总结一下,就是优酷播放视频确实如 @wadahana 所说的那样,要 cookie 。试了他的方法,确实有效。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2501 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 04:33 PVG 12:33 LAX 21:33 JFK 00:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86