有时候,在工作中有些客户需要用到视频,我们大家都知道视频是非常的耗费流量的,因此,如果因为项目要求客户单独买台视频服务器是非常划不来的。那么将视频上传到优酷,爱奇艺等视频网站来托管那是一件很好的解决方案。
今天主要和大家聊下如果使用爱奇艺开放平台中来动态获取自己上传视频的mp4格式url地址。我们闲话少说,直接开始。
首先先看下通过这种方式获取的视频播放效果:
一、我们需要注册成为爱奇艺开发者
爱奇艺开放平台: http://open.iqiyi.com/index.html
二、注册审核通过后,我们进入视频托管
搭建属于你的托管应用:http://open.iqiyi.com/lib/upload.html
三、学习文档,进行接口调用
四、封装代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>获取爱奇艺上传视频mp4格式url地址</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<style>
.main{
width:40%;
margin: 200px auto;
}
</style>
</head>
<body> <div class="main">
<video id="setUrl" width="550" height="310" controls type="video/mp4" preload="none" poster="bg.png"></video>
</div> <script type="text/javascript">
$(function(){
//------------------------测试数据--------------------------
var file_id="3856cf8b9e34492db5faa827d9a0c663"; //文件上传id
//------------------------测试数据--------------------------
// 得到mp4格式URL
getURL(file_id,function(url){
console.log(url);
$("#setUrl").attr("src",url);
});
// 封装得到mp4格式URL函数
function getURL(file_id,callback){
var app_key='XXXXXXXXXXXXXXXXXXXXXX'; //申请应用时分配的app_key
var app_secret='XXXXXXXXXXXXXXXXXXXXXXXXX';//申请应用时分配的app_secret
//获取访问令牌
$.ajax({
type: "GET",
url: "https://openapi.iqiyi.com/api/iqiyi/authorize?client_id="+app_key+"&client_secret="+app_secret+"",
data: "",
dataType: "json",
success: function(e){
var getObject =JSON.parse(e);
// var access_token=getObject.data.access_token; //开放平台分配的access token,OAuth授权后获得【正式环境下】
//------------------------测试数据--------------------------
var access_token="2.65f2da58f8c9d91eb7da125b317c9193"; //开放平台分配的access token,OAuth授权后获得【测试数据】
//------------------------测试数据--------------------------
//获取视频 URL 列表
$.ajax({
type: "GET",
url: "http://openapi.iqiyi.com/api/file/urllist?access_token="+access_token+"&file_id="+file_id+"",
data: "",
dataType: "json",
success: function(data){
var getData =JSON.parse(data);
var getUrlLink=(getData.data.mp4[1]);//得到需要的url请求
//获取mp4格式的视频URL
$.ajax(getUrlLink, {
data:"",
dataType: 'jsonp', //此处对于跨域问题的解决
crossDomain: true,
success: function(data) {
var videoURL =data.data.l;
callback.call(this,videoURL); //回调得到的mp4格式的url
},
error : function() {
console.log("请求获取mp4格式的视频URL失败");
}
}); },
error : function() {
console.log("请求获取视频URL列表失败");
}
}); },
error : function() {
console.log("请求获取访问令牌失败");
}
});
}
});
</script>
</body>
</html>
五、这种方式的好处
使用这种方式,我认为最大的好处就是我们可以随心所欲的变换播放器的样式及皮肤,还有更重要的一点,我们的视频虽然在爱奇艺的服务器上,但是我们点击播放的时候,视频可以立即的播放,而没有广告。而且还可以减缓我们服务器的带宽压力!!!
六、代码打包
链接: http://pan.baidu.com/s/1nuKIenB 密码: kqnx