微信小程序嵌入騰訊視頻源過(guò)程詳解
首先我們有一個(gè)接口可以獲取動(dòng)態(tài)的vkey
https://vv.video.qq.com/getinfo?otype=json&appver=3.2.19.333&platform=11&defnpayver=1&vid=
獲取的數(shù)據(jù)格式是這樣的
QZOutputJson={"dltype":1,"exem":0,"fl":{"cnt":2,"fi":[{"id":100701,"name":"msd","lmt":0,"sb":1,"cname":"流暢;(180P)","br":29,"drm":0,"video":1,"fs":35776912,"sl":1},{"id":2,"name":"mp4","lmt":0,"sb":1,"cname":"高清;(480P)","br":34,"drm":0,"video":1,"fs":74129447,"sl":0}]},"hs":0,"ip":"119.137.195.73","ls":0,"preview":1186,"s":"o","sfl":{"cnt":0},"tm":1503504934,"vl":{"cnt":1,"vi":[{"br":29,"ch":0,"cl":{"fc":0,"keyid":"b0136et5ztz.100701"},"ct":21600,"drm":0,"dsb":0,"fmd5":"87d7d2ef15f55a456bcdb359dd580795","fn":"b0136et5ztz.m701.mp4","fs":35776912,"fst":5,"fvkey":"EBB1F5C7B5100A3DA80802119E3FF9D0AAE3DA6670594D507B02AD489CF21D2868B0803B76F7434CE51B5C70D75554D68ED24A49EE3DE4791E0BA58444A77756FA7CBC6FB1B3E579F44F87AFB1CB79E8522A48576A4949037A5EDC1C842A9EF7536E090EBD018BB2","head":0,"hevc":0,"iflag":0,"level":0,"lnk":"b0136et5ztz","logo":1,"mst":8,"pl":null,"share":1,"sp":0,"st":2,"tail":0,"td":"1186.92","ti":"解密潮汕多神信仰","type":3,"ul":{"ui":[{"url":"http://113.105.167.156/vhot2.qqvideo.tc.qq.com/AuRJoSSIabzpOb1RsXSviFl-nYwRDSZoFU5OpwBhfrAk/","vt":200,"dtc":0,"dt":2},{"url":"http://113.105.167.155/vhot2.qqvideo.tc.qq.com/AuRJoSSIabzpOb1RsXSviFl-nYwRDSZoFU5OpwBhfrAk/","vt":200,"dtc":0,"dt":2},{"url":"http://113.105.167.154/vhot2.qqvideo.tc.qq.com/AuRJoSSIabzpOb1RsXSviFl-nYwRDSZoFU5OpwBhfrAk/","vt":200,"dtc":0,"dt":2},{"url":"http://video.dispatch.tc.qq.com/62098754/","vt":0,"dtc":0,"dt":2}]},"vh":272,"vid":"b0136et5ztz","videotype":27,"vr":0,"vst":2,"vw":480,"wh":1.7647059,"wl":{"wi":[]}}]}};
需要的視頻播放地址的格式是這樣的
url + fn + '?vkey=' + fvkey
我需要的是用戶可以在后臺(tái)發(fā)布時(shí)候只需要復(fù)制視頻鏈接填入即可
vedio 是騰訊播放地址例如:https://v.qq.com/x/page/c0799d0jruj.html 所以稍加改造后,代碼如下
function getVideoInfo(vedio) { if (!vedio) return var vid = vedio.substring(vedio.lastIndexOf('/') + 1, vedio.lastIndexOf('html') - 1); var that = this; var urlString = 'https://vv.video.qq.com/getinfo?otype=json&appver=3.2.19.333&platform=11&defnpayver=1&vid=' + vid; wx.request({ url: urlString, success: function (res) { var dataJson = res.data.replace(/QZOutputJson=/, '') + "qwe"; var data = JSON.parse(dataJson); var fileName = data['vl']['vi'][0]['fn']; var fvkey = data['vl']['vi'][0]['fvkey']; var host = data['vl']['vi'][0]['ul']['ui'][2]['url'] that.setData({ videoUrl: host + fileName + '?vkey=' + fvkey }); } }) }
生成的videoUrl即是我需要的最終可以直接插入播放的視頻
最后寫入wxml
<view class='video'> <video src='{{videoUrl}}' bindplay='playVideo' id="myVideo"></video> <view class='tips'>建議WIFI環(huán)境下播放</view> </view>
在小程序中使用發(fā)現(xiàn) 需要綁定授權(quán)域名https://vv.video.qq.com 我們無(wú)法上傳驗(yàn)證文件所以無(wú)法綁定,因?yàn)楹竺嫖以谛〕绦蚪涌谥惺褂肞HP方法獲取視頻地址
//騰訊視頻獲取實(shí)際播放放地址 function getVideoInfo($video){ $vid = ""; //正則表達(dá)式截取vid preg_match_all("/(?:\/page\/)(.*)(?:\.html)/i",$video, $vid); $vid = $vid[1][0]; $urlString = 'https://vv.video.qq.com/getinfo?otype=json&appver=3.2.19.333&platform=11&defnpayver=1&vid='.$vid; $res = fopen_url($urlString); //字符串截取json $json = str_replace("QZOutputJson=","",$res); $json = str_replace("}}]}};","}}]}}",$json); //json轉(zhuǎn)換為數(shù)組 $json = json_decode($json,true); $fileName = $json['vl']['vi'][0]['fn']; $fvkey = $json['vl']['vi'][0]['fvkey']; $host = $json['vl']['vi'][0]['ul']['ui'][2]['url']; $url = $host.$fileName.'?vkey='.$fvkey; return $url; } /** 獲取遠(yuǎn)程文件內(nèi)容 @param $url 文件http地址 */ function fopen_url($url) { if (function_exists('file_get_contents')) { $file_content = @file_get_contents($url); } elseif (ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))){ $i = 0; while (!feof($file) && $i++ < 1000) { $file_content .= strtolower(fread($file, 4096)); } fclose($file); } elseif (function_exists('curl_init')) { $curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, $url); curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1); curl_setopt($curl_handle, CURLOPT_FAILONERROR,1); curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Trackback Spam Check'); //引用垃圾郵件檢查 $file_content = curl_exec($curl_handle); curl_close($curl_handle); } else { $file_content = ''; } return $file_content; }
因此在小程序接口上我們使用getVideoInfo()方法來(lái)轉(zhuǎn)換視頻地址就行了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序?qū)崿F(xiàn)Session功能及無(wú)法獲取session問(wèn)題的解決方法
- 詳解微信小程序-獲取用戶session_key,openid,unionid - 后端為nodejs
- 微信小程序 獲取session_key和openid的實(shí)例
- 微信小程序開發(fā)一鍵登錄 獲取session_key和openid實(shí)例
- 小程序:授權(quán)、登錄、session_key、unionId的詳解
- 微信小程序登錄session的使用
- 詳解微信小程序文件下載--視頻和圖片
- 小程序點(diǎn)擊圖片實(shí)現(xiàn)自動(dòng)播放視頻
- 小程序視頻或音頻自定義可拖拽進(jìn)度條的示例代碼
- 小程序視頻列表中視頻的播放與停止的示例代碼
- 在小程序中使用騰訊視頻插件播放教程視頻的方法
- 微信小程序使用video組件播放視頻功能示例【附源碼下載】
- 微信小程序 vidao實(shí)現(xiàn)視頻播放和彈幕的功能
相關(guān)文章
layui之select的option疊加問(wèn)題的解決方法
下面小編就為大家分享一篇layui之select的option疊加問(wèn)題的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03js實(shí)現(xiàn)鼠標(biāo)拖拽多選功能示例
本篇文章主要介紹了js實(shí)現(xiàn)鼠標(biāo)拖拽多選功能示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08Bootstrap table 定制提示語(yǔ)的加載過(guò)程
bootstrap-table是在bootstrap-table的基礎(chǔ)上寫出來(lái)的,專門用于顯示數(shù)據(jù)的表格插件。這篇文章主要介紹了Bootstrap table 定制提示語(yǔ),需要的朋友可以參考下2017-02-02select、radio表單回顯功能實(shí)現(xiàn)避免使用jquery載入賦值
select、radio表單回顯避免使用jquery載入賦值,最好的做法是:在jsp頁(yè)面進(jìn)行邏輯判斷,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-06-06js實(shí)現(xiàn)表格拖動(dòng)選項(xiàng)
這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)表格拖動(dòng)選項(xiàng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04在JS中a標(biāo)簽加入單擊事件屏蔽href跳轉(zhuǎn)頁(yè)面
這篇文章主要介紹了JS中a標(biāo)簽加入單擊事件屏蔽href跳轉(zhuǎn)頁(yè)面的相關(guān)資料,需要的朋友可以參考下2016-12-12原生JS+HTML5實(shí)現(xiàn)跟隨鼠標(biāo)一起流動(dòng)的粒子動(dòng)畫效果
這篇文章主要介紹了原生JS+HTML5實(shí)現(xiàn)跟隨鼠標(biāo)一起流動(dòng)的粒子動(dòng)畫效果,涉及javascript事件響應(yīng)、數(shù)值運(yùn)算及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05JavaScript中保留兩位小數(shù)的方法總結(jié)
這篇文章主要把相關(guān)保留兩位小數(shù)的方法總結(jié)了一下,不同的場(chǎng)景用不同的方法,即用即取,文中的示例代碼講解詳細(xì),?感興趣的小伙伴可以了解一下2023-06-06記錄微信小程序 height: calc(xx - xx);無(wú)效問(wèn)題
這篇文章主要介紹了微信小程序 - height: calc(xx - xx);無(wú)效 問(wèn)題,文中給大家擴(kuò)展介紹下jquery點(diǎn)擊添加樣式,再次點(diǎn)擊移除樣式的實(shí)例代碼,需要的朋友可以參考下2019-12-12