微信小程序如何播放腾讯视频的实现


Posted in Javascript onSeptember 20, 2019

1.背景

因为当时需要做视频播放,后台存放视频文件又不现实。所以,做了一个能解析腾讯视频地址的并播放视频的小程序。

2.介绍

小程序里的解析腾讯视频地址的代码是参考了一个开源项目you-get写的,把里面的腾讯视频下载的python代码写成了JS代码。

3.腾讯视频ID从哪获取

1.一般播放一个腾讯视频的时候播放地址为https://v.qq.com/x/page/w0647n5294g.html。
.html到最后一个/之间的字符串即为腾讯视频id。如https://v.qq.com/x/page/w0647n5294g.html的id为w0647n5294g。

4.获取腾讯视频真实播放地址

分为以下两步

1 获取视频信息

把腾讯视频ID传入以下函数

getVideoInfo: function (vid) {
  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 dataJson1 = dataJson.replace(/;qwe/, '');
    var data = JSON.parse(dataJson1);
    var fn_pre = data.vl.vi[0].lnk
    host = data['vl']['vi'][0]['ul']['ui'][0]['url']
    var streams = data['fl']['fi']
    var seg_cnt = data['vl']['vi'][0]['cl']['fc']
    if (parseInt(seg_cnt) == 0) {
     seg_cnt = 1
    }
    var best_quality = streams[streams.length - 1]['name']
    var part_format_id = streams[streams.length - 1]['id']

    for (var i = 1; i < (seg_cnt + 1); i++) {
     var filename = fn_pre + '.p' + (part_format_id % 10000) + '.' + i + '.mp4';
     console.log(filename);
     pageArr.push(i);
     that.requestVideoUrls(part_format_id, vid, filename, 'index' + i);

    }

   }
  })
 },

2 根据视频信息解析视频真正的播放地址

requestVideoUrls: function (part_format_id, vid, fileName, index) {
  var keyApi = "https://vv.video.qq.com/getkey?otype=json&platform=11&format=" + part_format_id + "&vid=" + vid + "&filename=" + fileName + "&appver=3.2.19.333"
  var that = this;
  wx.request({
   url: keyApi,
   success: function (res) {
    var dataJson = res.data.replace(/QZOutputJson=/, '') + "qwe";
    var dataJson1 = dataJson.replace(/;qwe/, '');
    var data = JSON.parse(dataJson1);
    if (data.key != undefined) {
     var vkey = data['key']
     var url = host + fileName + '?vkey=' + vkey;
     part_urls[index] = String(url)
     that.setData({
      videoUrl: part_urls.index1
     });
    }
   }
  })
 },

该函数里面的part_urls.index1,即为腾讯视频的真实地址。把这个地址放到小程序的video组件的src中,即可播放腾讯上的视频。

最后放上demo:weChatVideoPlay

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
hover的用法及live的用法介绍(鼠标悬停效果)
Mar 29 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
Jun 09 Javascript
JS小游戏之象棋暗棋源码详解
Sep 25 Javascript
js防止页面被iframe调用的方法
Oct 30 Javascript
js判断浏览器类型及设备(移动页面开发)
Jul 30 Javascript
微信小程序 textarea 详解及简单使用方法
Dec 05 Javascript
Express + Session 实现登录验证功能
Sep 08 Javascript
详解webpack提取第三方库的正确姿势
Dec 22 Javascript
nginx部署访问vue-cli搭建的项目的方法
Feb 12 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
May 29 Javascript
JS实现公告上线滚动效果
Jan 10 Javascript
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 #Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 #Javascript
微信用户访问小程序的登录过程详解
Sep 20 #Javascript
解决layUI的页面显示不全的问题
Sep 20 #Javascript
小程序如何获取多个formId实现详解
Sep 20 #Javascript
SSM+layUI 根据登录信息显示不同的页面方法
Sep 20 #Javascript
使用Layui搭建后台管理界面的操作方法
Sep 20 #Javascript
You might like
PHP 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
jquery validate demo 基础
2015/10/29 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
Javascript call及apply应用场景及实例
2020/08/26 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
python实现xlsx文件分析详解
2018/01/02 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
Python内置异常类型全面汇总
2020/05/28 Python
美国社交购物市场:MassGenie
2019/02/18 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
机械电子工程毕业生自荐信
2013/11/23 职场文书
2014政务公开实施方案
2014/02/19 职场文书
优秀毕业生求职信
2014/06/05 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
购房个人委托书范本
2014/10/11 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书