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


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 相关文章推荐
jQuery 遍历json数组的实现代码
Sep 22 Javascript
Jquery 一次处理多个ajax请求的代码
Sep 02 Javascript
JQuery中serialize()用法实例分析
Feb 06 Javascript
JavaScript中var关键字的使用详解
Aug 14 Javascript
JavaScript获取键盘按键的键码(参照表)
Jan 10 Javascript
js中开关变量使用实例
Feb 24 Javascript
使用gulp搭建本地服务器并实现模拟ajax
Apr 05 Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 Javascript
简单谈谈vue的过渡动画(推荐)
Oct 11 Javascript
一文快速详解前端框架 Vue 最强大的功能
May 21 Javascript
微信小程序Echarts覆盖正常组件问题解决
Jul 13 Javascript
vue项目中播放rtmp视频文件流的方法
Sep 17 Javascript
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贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
基于Vue实现timepicker
2017/04/25 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
python设置windows桌面壁纸的实现代码
2013/01/28 Python
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Python简单定义与使用二叉树示例
2018/05/11 Python
Numpy的简单用法小结
2019/08/28 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
详解python中的闭包
2020/09/07 Python
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
成品仓管员工作职责
2013/12/29 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
处级干部考察材料
2014/12/24 职场文书
工商局个人工作总结
2015/03/03 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书
Python 阶乘详解
2021/10/05 Python
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL
Java Spring Lifecycle的使用
2022/05/06 Java/Android