美文网首页eiYoiOS学习笔记视频
iOS-截取优酷视频地址的ID播放视频

iOS-截取优酷视频地址的ID播放视频

作者: 叫我李五 | 来源:发表于2015-09-10 16:30 被阅读3235次

    2016-1-4更新

    不经意间发现在苹果最新的9.0系统或以上,以下的方法好像不怎么适用了。点击视频画面的时候不能播放视频,不知道是否是页面的响应问题还是什么,也没仔细探究。重要的是优酷视频云已经开放了iOS SDK,时间是2015年11月份。

    之前在项目中有个播放视频的功能,但是这些视频又不是放在服务器上面的。而是用户上传到优酷上面,然后将视频的信息地址等等保存在服务器,app端请求时数据返回到app端。

    本来需求的要求也不是很高的,只要能到页面播放视屏就OK了。于是我就直接把一串地址加载到UIWebView上就完事了。。。效果是这样的:


    985E574C-AD50-4698-BDFB-3085A1F62B91.png

    不过这样的话,页面好像挺大的,网速慢的时候加载起来会有点慢,影响用户的体验。

    不久,需求说这样太难看了,整个页面都显示出来了。能不能改一下,只是显示视频的缩略图。要的效果如下:


    屏幕快照 2015-09-10 下午4.02.27.png

    OK,as your wish,尝试一下。
    上优酷的开发者平台(http://open.youku.com/tools) 一看,我擦,坑爹嘛连iOS SDK都没有的!!让我们敬请期待。。。没办法了,就试试web JS的方法了。上面有介绍:

    2B0BE9EE-AF7F-4B22-A7EF-FB4DD78EB719.png

    我们要来看看这段代码:
    <div id="youkuplayer" style="width:480px;height:400px"></div>
    <script type="text/javascript" src="http://player.youku.com/jsapi">
    player = new YKU.Player('youkuplayer',{
    styleid: '0',
    client_id: 'YOUR YOUKUOPENAPI CLIENT_ID',
    vid: '替换成优酷视频ID'
    });
    </script>

    首先,需要有:client_id--优酷开放平台创建应用的client_id;你也可以设置styleid的类型;好了,接着,需要有vid: '优酷视频ID';再接着解析你的视频URL地址,for example,(http://v.youku.com/v_show/id_XNDcwMDc3MTk2.html?from=y1.7-2) --拿到id_后面的那串东西。。。

    OK,最后就是通过webview的方法 - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL; 来加载上面那一大串替代后的JS代码。与此同时也设置一下上面JS里style的width和heigh以适配不同的机型。最后效果如下:


    video.gif

    源码下载:https://github.com/ljhang/PlayYoukuVideo
    如果你发现有错误的地方、有不明白的地方、或者更好的改进的地方,欢迎指正,一起学习进步。或者在此留言给我,或者联系我:ljhang1@163.com thank you~~

    相关文章

      网友评论

      • o0下一站生活0o:现在还能用吗?
        叫我李五:@o0下一站生活0o 我也没留意能不能用,优酷现在应该有sdk了的
      • 1928fbd04297:跑起来就一直是黑屏,不能播放视频啊
      • 1928fbd04297:把你的代码下载来之后一直是黑屏状态,是什么原因啊
      • 含泪若笑:可不可以不用优酷呢?可以用其他的吗
      • Damon4Zhou:过段时间会不会不能用了? 优酷一直在做这方面的东西
      • 酷走天涯:问一下,gif图片用什么工具做的
        叫我李五: @酷走天涯 PicGif,挺好用的
      • 酷走天涯:不错不错,学习了
      • 6cc65728586e:谢谢作者!
        叫我李五: @木木向上 😊😊
      • 哈么么茶:是不是用它的SDK 然后直接给个地址就行了,不要像LZ这么麻烦了?
      • 动感超人丶:github下载代码,跑起来,xcode报这个App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
        我在inforplist设置更改了Allow Arbitray Loads也没有用。怎么破
        叫我李五:@动感超人丶 这个是http的问题吗?你试试在info.plist允许Http看看
      • GJCode:太棒了,我之前一直不知道怎么解决,现在终于好了,多谢
        叫我李五:@GJCode 哈不谢不谢。要注意下视频播放前后的横屏问题

      本文标题:iOS-截取优酷视频地址的ID播放视频

      本文链接:https://www.haomeiwen.com/subject/kdspcttx.html