当前位置:   article > 正文

在uni-app中使用腾讯视频插件播放视频_plugin://player/video

plugin://player/video

在小程序里播放视频是很常见的功能。在本文里,我们来看一看怎么在微信小程序里开发一个播放视频的功能。本文将使用uni-app+腾讯视频来实现。

uni-app

uni-app 是一个使用 Vue.js (opens new window)开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。

uni-app在手,做啥都不愁。即使不跨端,uni-app也是更好的小程序开发框架(详见 (opens new window))、更好的App跨平台框架、更方便的H5开发框架。不管领导安排什么样的项目,你都可以快速交付,不需要转换开发思维、不需要更改开发习惯。

腾讯视频插件

ThumbPlayer-Miniprogram 腾讯视频小程序播放器SDK,适用于手Q和微信小程序的播放器插件,开箱即用无需配置。仅支持自有腾讯视频创作号上传内容播放。腾讯视频插件分为1.x版本和2.x版本,因为2.x版本提供了视频的播放、暂停、重播等功能的使用说明,本文里将使用2.x版本来实现。

申请腾讯视频插件

想要使用腾讯视频插件,必须在微信小程序里先申请该插件的使用。

打开微信公众平台,使用小程序的微信管理员账号扫码登录,在左侧菜单栏最底下,找到设置。

选择第三方设置选项卡,插件管理中添加插件

 点击详情查看文档,并获取插件的appid跟版本号

点击开发文档,查看如何引入和使用该插件。 

创建项目

uni-app可以使用HBuildX作为开发工具,点击HBuildX下载链接进行下载安装。还需要安装微信开发工具

HBuildX安装以后,打开文件=>新建=>项目,选择uni-app项目进行创建

 创建以后目录结构如图,选择mainfest.json文件进行编辑,编辑后会自动保存。

点击基础配置,获取uni-app的AppId

点击微信小程序配置,输入微信小程序的AppId 

点击源码视图,引入腾讯视频插件代码包

  1. "mp-weixin" : {
  2. "appid" : "",
  3. "setting" : {
  4. "urlCheck" : false
  5. },
  6. "usingComponents" : true
  7. "plugins":{
  8. "player": {
  9. "version": "2.1.1",
  10. "provider": "wxa75efa648b60994b"
  11. }
  12. }
  13. }

选择pages.json进行编辑,在页面内进行插件引入插件

  1. "pages": [
  2. {
  3. "path": "pages/index/index",
  4. "style": {
  5. "navigationBarTitleText": "uni-app",
  6. "usingComponents": {
  7. "player-component": "plugin://player/video",
  8. }
  9. }
  10. }
  11. ...
  12. ],

这样我们就能在页面内使用腾讯视频插件播放视频了,首先到腾讯视频网站上传或者找到一个想播放的视频,获取vid,比如生活小知识:樱桃是常见的一种水果,很有营养价值,但有些人不能吃

  1. <template>
  2. <view>
  3. <player-component vid="p0743x9grjv"></player-component>
  4. </view>
  5. </template>

 控制视频播放/暂停

有时候我们需要对视频的播放、暂停进行控制。下面介绍一些常用到的api

  1. # 获取播放器实例
  2. const store = requirePlugin('player')
  3. // index.wxml 中 <video id="tvp-id" playerId="tvp">
  4. const player = store.get('tvp');
  5. //
  6. const player = this.selectComponent('#tvp-id');
  7. # 打开/关闭调试日志
  8. store.openLog();
  9. store.closeLog();
  10. # 播放
  11. const player = store.get('player')
  12. player.play() // 调用小程序videoContext.play()
  13. player.play('想播放的vid') // 播放指定vid
  14. player.play('想播放的vid', { startTime: 5 }) // 指定起播的时间
  15. # 跳转/暂停/停止
  16. const player = store.get('player')
  17. player.pause(); // 暂停,同videoContext.pause()
  18. player.stop(); // 停止,同videoContext.stop()
  19. player.seek(5); // 跳转,同videoContext.seek()
  20. # 重播
  21. const player = store.get('player')
  22. player.replay();
  23. # 设定清晰度
  24. const player = store.get('player')
  25. player.setLevel('fhd')
  26. player.setLevel('fhd').catch(error => {
  27. // error处理
  28. })
  29. # 播放器支持的video标签事件
  30. 'play',
  31. 'pause',
  32. 'ended',
  33. 'timeupdate',
  34. 'waiting',
  35. 'error',
  36. 'progress',
  37. 'loadedmetadata',
  38. 'controlstoggle',
  39. 'seekcomplete',
  40. 'fullscreenchange',
  41. # 播放器支持的video标签属性
  42. /**
  43. * 指定视频初始播放位置
  44. */
  45. initialTime: {
  46. type: NumberConstructor,
  47. value: number, // 0
  48. }
  49. /**
  50. * 是否使用ui,这里是设置总体UI开关。
  51. */
  52. controls: {
  53. type: BooleanConstructor,
  54. value: boolean, // true
  55. },
  56. /**
  57. * 是否静音播放
  58. */
  59. muted: {
  60. type: BooleanConstructor,
  61. value: boolean, // false
  62. },
  63. /**
  64. * 设置全屏时视频的方向,不指定则根据宽高比自动判断
  65. */
  66. direction: {
  67. type: NumberConstructor,
  68. value: number, // -1
  69. },
  70. /**
  71. * 屏幕锁
  72. */
  73. showScreenLockButton: {
  74. type: BooleanConstructor,
  75. value: boolean, // false
  76. }
  77. /**
  78. * 当视频大小与 video 容器大小不一致时,视频的表现形式
  79. */
  80. objectFit: {
  81. type: StringConstructor,
  82. value: string, // 'contain'
  83. },
  84. /**
  85. * 是否开启播放手势,即双击切换播放/暂停
  86. */
  87. enablePlayGesture: {
  88. type: BooleanConstructor,
  89. value: boolean, // false
  90. },
  91. /**
  92. * 当跳转到本小程序的其他页面时,是否自动暂停本页面的视频播放
  93. */
  94. autoPauseIfNavigate: {
  95. type: BooleanConstructor,
  96. value: boolean, // true
  97. },
  98. /**
  99. * 当跳转到其它微信原生页面时,是否自动暂停本页面的视频
  100. */
  101. autoPauseIfOpenNative: {
  102. type: BooleanConstructor,
  103. value: boolean, // true
  104. },
  105. /**
  106. * 是否开启手机横屏时自动全屏,当系统设置开启自动旋转时生效
  107. */
  108. enableAutoRotation: {
  109. type: BooleanConstructor,
  110. value: boolean, // false
  111. },
  112. /**
  113. * 是否开启投屏
  114. */
  115. showCastingButton: {
  116. type: BooleanConstructor,
  117. value: boolean, // false
  118. },
  119. /**
  120. * 非全屏模式下音量/亮度手势
  121. */
  122. vslideGesture: {
  123. type: BooleanConstructor,
  124. value: boolean, // false
  125. },
  126. /** 全屏下模式下音量/亮度手势 */
  127. vslideGestureInFullscreen: {
  128. type: BooleanConstructor,
  129. value: boolean, // true
  130. },
  131. /**
  132. * 是否使用进度条手势
  133. */
  134. enableProgressGesture: {
  135. type: BooleanConstructor,
  136. value: boolean, // true
  137. },
  138. /**
  139. * 是否自动播放
  140. */
  141. autoplay: {
  142. type: BooleanConstructor,
  143. value: boolean, // true
  144. },
  145. /** 是否显示进度条 */
  146. showProgress: {
  147. type: BooleanConstructor,
  148. value: boolean, // true
  149. },

欢迎关注

最后,欢迎大家关注我的公众号呀 。打开微信搜索程序猿零壹公众号即可关注,希望能与大家共同进步。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/267830?site
推荐阅读
相关标签
  

闽ICP备14008679号