有時候,在工作中有些客戶需要用到視頻,我們大家都知道視頻是非常的耗費流量的,因此,如果因為項目要求客戶單獨買台視頻服務器是非常划不來的。那么將視頻上傳到優酷,愛奇藝等視頻網站來托管那是一件很好的解決方案。
今天主要和大家聊下如果使用愛奇藝開放平台中來動態獲取自己上傳視頻的mp4格式url地址。我們閑話少說,直接開始。
首先先看下通過這種方式獲取的視頻播放效果:
一、我們需要注冊成為愛奇藝開發者
愛奇藝開放平台: http://open.iqiyi.com/index.html
二、注冊審核通過后,我們進入視頻托管
搭建屬於你的托管應用:http://open.iqiyi.com/lib/upload.html
三、學習文檔,進行接口調用
四、封裝代碼如下
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>獲取愛奇藝上傳視頻mp4格式url地址</title> 6 <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> 7 <style> 8 .main{ 9 width:40%; 10 margin: 200px auto; 11 } 12 </style> 13 </head> 14 <body> 15 16 <div class="main"> 17 <video id="setUrl" width="550" height="310" controls type="video/mp4" preload="none" poster="bg.png"></video> 18 </div> 19 20 <script type="text/javascript"> 21 $(function(){ 22 //------------------------測試數據-------------------------- 23 var file_id="3856cf8b9e34492db5faa827d9a0c663"; //文件上傳id 24 //------------------------測試數據-------------------------- 25 // 得到mp4格式URL 26 getURL(file_id,function(url){ 27 console.log(url); 28 $("#setUrl").attr("src",url); 29 }); 30 31 // 封裝得到mp4格式URL函數 32 function getURL(file_id,callback){ 33 var app_key='XXXXXXXXXXXXXXXXXXXXXX'; //申請應用時分配的app_key 34 var app_secret='XXXXXXXXXXXXXXXXXXXXXXXXX';//申請應用時分配的app_secret 35 //獲取訪問令牌 36 $.ajax({ 37 type: "GET", 38 url: "https://openapi.iqiyi.com/api/iqiyi/authorize?client_id="+app_key+"&client_secret="+app_secret+"", 39 data: "", 40 dataType: "json", 41 success: function(e){ 42 var getObject =JSON.parse(e); 43 // var access_token=getObject.data.access_token; //開放平台分配的access token,OAuth授權后獲得【正式環境下】 44 //------------------------測試數據-------------------------- 45 var access_token="2.65f2da58f8c9d91eb7da125b317c9193"; //開放平台分配的access token,OAuth授權后獲得【測試數據】 46 //------------------------測試數據-------------------------- 47 //獲取視頻 URL 列表 48 $.ajax({ 49 type: "GET", 50 url: "http://openapi.iqiyi.com/api/file/urllist?access_token="+access_token+"&file_id="+file_id+"", 51 data: "", 52 dataType: "json", 53 success: function(data){ 54 var getData =JSON.parse(data); 55 var getUrlLink=(getData.data.mp4[1]);//得到需要的url請求 56 //獲取mp4格式的視頻URL 57 $.ajax(getUrlLink, { 58 data:"", 59 dataType: 'jsonp', //此處對於跨域問題的解決 60 crossDomain: true, 61 success: function(data) { 62 var videoURL =data.data.l; 63 callback.call(this,videoURL); //回調得到的mp4格式的url 64 }, 65 error : function() { 66 console.log("請求獲取mp4格式的視頻URL失敗"); 67 } 68 }); 69 70 }, 71 error : function() { 72 console.log("請求獲取視頻URL列表失敗"); 73 } 74 }); 75 76 }, 77 error : function() { 78 console.log("請求獲取訪問令牌失敗"); 79 } 80 }); 81 } 82 }); 83 </script> 84 </body> 85 </html>
五、這種方式的好處
使用這種方式,我認為最大的好處就是我們可以隨心所欲的變換播放器的樣式及皮膚,還有更重要的一點,我們的視頻雖然在愛奇藝的服務器上,但是我們點擊播放的時候,視頻可以立即的播放,而沒有廣告。而且還可以減緩我們服務器的帶寬壓力!!!
六、代碼打包
鏈接: http://pan.baidu.com/s/1nuKIenB 密碼: kqnx