Uniapp 对接抖音短剧播放器 video-player 坑点解决

  • 在抖音针对短剧新出的 video-player 组件对接过程中,如果是原生的话倒还好,要是 uniapp 还是有不少细节坑点的,基本文档上都有存在,这里重点列举几个:

    1、uniapp 需要通过小程序原生封装一下 video-player 组件导入到 uniapp 工程使用。这里有现成封装的 video-player 原生Demo

    2、uniapp 只支持在页面级配置 usingComponents 组件使用,也就是封装的 video-player 只能在页面级使用,原生可以在组件里面嵌套,但是 uniapp 也不是不可以组件级别使用,需要在编译出小程序源码后使用 video-player 的页面子组件配置文件内添加 video-player 的引用配置:

    image.png

    这里可以通过 nodejs、python 等自动化脚本自行添加,这样就不需要每次都去操作。

    3、每次进入播放页,播放器无法进行播放或看不到播放器,或时好时坏,或拿不到播放器的任何回调,比如开始播放、播放进度等。原因是没有开启 行业 SDK 的权限配置,配置一下,权限生效就正常了。经过测试,权限配置的 package.json 在同一个 appid 下只需要首次开权限存在就行,权限开了后下次去掉也没问题的。但是依然可以像上面一样,使用自动化脚本完成这个文件的生成,因为这个文件是需要存在编译出来的源码项目根目录中的,一直存在自然更好,免得出意外。

    4、使用 uni.createVideoContext('myVideo', this) 获取播放器的上下文后,无法进行操作播放器暂停、播放等,原因是需要通过小程序原生 tt:ref 获取到 video-player 本身,将这个获取到的 ref 传入到 createVideoContext('myVideo', ref) 第二个参数,平常其他小程序只需要传入 this 即可,但是 video-player 不行。这里有现成封装的 video-player 原生Demo 这个 demo 中封装的 video-player 就有获取 ref 的回调,直接使用即可:

    <tt-video-player
        id="myVideo"
        album-id="7301931296073351730" 
        episode-id="7301931329208189450"
        :object-fit="drama.isVerScreen ? 'cover' : 'contain'"
        :inner-style="`position: left: 0; absolute; width: 100vw; background-color: orange; ${videoStyle}`"
        :autoplay="true"
        :muted="false"
        :controls="false"
        :show-progress="false"
        :show-fullscreen-btn="false"
        @timeupdate="timeUpdate"
        @ref="refHandler"
        @error="playError"
    ></tt-video-player>
    
    // 获取播放器 ref
    refHandler (ref) {
       // 这样就能进行操作 video-player 播放器了
       this.videoContext = uni.createVideoContext('myVideo', ref)
    },
    

    4、如果通过 inner-class 或 class 无法修改播放器的样式,可以使用 inner-style 直接修改样式,这种一定会生效。

  • uniapp 工程使用示例

    uniapp 配置 usingComponents 只支持页面级,但是在博主工程中,播放器是在 uniapp 的组件内使用,而非页面级,这就导致编译出源码后,组件内的播放器没有配置链接关联,所以博主使用的是自动化脚本在编译玩代码后完成对小程序源码的修改,配置好组件内的播放器 usingComponents 配置,以及生成行业权限的 package.json 文件。

    image.png

    image.png

您可以使用以下代码引入vue-video-player插件并设置视频地址: 在main.js里面全局引用: ```javascript // 安装 vue-video-player npm install vue-video-player --save // 引入插件 import VueVideoPlayer from 'vue-video-player' import 'video.js/dist/video-js.css' // 引入视频样式文件 import 'vue-video-player/src/custom-theme.css' // 引入插件样式文件 // 在Vue实例中使用插件 Vue.use(VueVideoPlayer) // 在需要使用插件的组件内,设置视频地址 <template> <div> <video-player :options="videoOptions"></video-player> </div> </template> <script> export default { data() { return { videoOptions: { sources: [ { src: 'your-video-url.mp4', type: 'video/mp4' } ] } } } } </script> ``` 在组件内引用: ```javascript // 安装 vue-video-player npm install vue-video-player --save // 在需要的组件内引入插件 import { videoPlayer } from 'vue-video-player' import 'video.js/dist/video-js.css' // 引入视频样式文件 import 'vue-video-player/src/custom-theme.css' // 引入插件样式文件 // 在Vue实例中使用插件 export default { components: { videoPlayer }, data() { return { videoOptions: { sources: [ { src: 'your-video-url.mp4', type: 'video/mp4' } ] } } } } ``` 请将"your-video-url"替换为您的实际视频地址。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue视频播放插件vue-video-player的具体使用方法](https://download.csdn.net/download/weixin_38517095/13674028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vue-video-player:vue2.0+vue-video-player实现hls播放全过程](https://download.csdn.net/download/weixin_42123237/18213340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [go语言恶意代码检测系统-对接前端可视化与算法检测部分](https://download.csdn.net/download/liufang_imei/88222624)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值