当前位置: 首页 > 知识库问答 >
问题:

uniapp 微信小程序腾讯视频插件在手机上播放一两秒后自动跳到最后怎么办?

白吕恭
2025-11-30

这是uniapp写的一个微信小程序;

我使用腾讯视频插件;

配置是没有问题应该,在电脑中开发者工具中是可以正常使用的。

在手机中体验时,视频会播一两秒后,就会自动跳到最后一秒,然后也拖不动。

<script setup lang="ts">

</script>

<template>
    <view class="w-full h-full bg-black">
      <player-component
        id="tvp-id"
        playerid="tvp"
        vid="g3179w437mg"
        class="w-full h-full"
      />
    </view>

</template>
vendor.js:7301 App: onLaunch have been invoked
vendor.js:7285 App: onShow have been invoked
index.js:195 App route: 
- path: pages/home/index
- openType: appLaunch
- renderer: webview
- componentFramework: exparser
vendor.js:6162 [Component] generic "wx-custom-layer" is not instantiated. The default component is used instead.
patch @ vendor.js:6162
vendor.js:6162 [Component] generic "wx-custom-toast" is not instantiated. The default component is used instead.
patch @ vendor.js:6162
vendor.js:6162 setting playerid is deprecated, please use selectComponent
patch @ vendor.js:6162
vendor.js:7813 Update view with init data
vendor.js:7813 pages/home/index: onLoad have been invoked
vendor.js:7638 pages/home/index: onShow have been invoked
vendor.js:7214 pages/home/index: onRouteDone have been invoked
vendor.js:6165 Invoke event onReady in page: pages/home/index
vendor.js:6165 pages/home/index: onReady have been invoked

腾讯视频插件官方文档

使用了GPT5进行解答失败。
使用相关文档中的办法进行解答失败。

共有1个答案

禹昊穹
2025-11-30

根据你描述的问题及代码分析,视频播放异常的原因可能是微信小程序插件在真机环境下的兼容性问题。以下是针对性解决方案:

根本原因分析

  1. 插件初始化问题:控制台警告 setting playerid is deprecated 表明你使用的 playerid 属性已被弃用
  2. 移动端环境差异:手机端对视频自动播放策略(iOS/Android)更严格
  3. 插件生命周期冲突:开发者工具和真机的渲染机制存在差异

解决方案

1. 使用官方推荐初始化方式(替代已弃用属性)

<script setup lang="ts">
import { ref, onReady } from "@dcloudio/uni-app"

const player = ref(null)

onReady(() => {
  const query = uni.createSelectorQuery()
  query.select('#tvp-id').node()
  query.exec((res) => {
    player.value = res[0].node
    player.value.play()
  })
})
</script>

<template>
  <view class="w-full h-full bg-black">
    <player-component
      id="tvp-id"
      vid="g3179w437mg"
      autoplay
      class="w-full h-full"
    />
  </view>
</template>

2. 增加用户交互触发(规避自动播放限制)

<template>
  <view class="w-full h-full bg-black" @click="handlePlay">
    <player-component
      id="tvp-id"
      vid="g3179w437mg"
      :autoplay="false"
      class="w-full h-full"
    />
    <button class="play-btn">点击播放</button>
  </view>
</template>

<script setup>
const handlePlay = () => {
  const query = uni.createSelectorQuery()
  query.select('#tvp-id').node()
  query.exec((res) => {
    res[0].node.play()
  })
}
</script>

3. 强制指定视频配置(防止异常跳转)

<player-component
  id="tvp-id"
  vid="g3179w437mg"
  :config="{
    controls: true,
    playbackRate: 1.0,
    autoplay: true,
    muted: true, // iOS必须静音
    ignoreAutoPlayPolicy: true // 安卓专用
  }"
/>

必须检查的关键点

  1. SDK版本兼容

    // manifest.json
    "mp-weixin" : {
      "plugins": {
     "player": {
       "version": "2.3.2", // 确保≥2.3.0
       "provider": "wxa75efa648b60994b"
     }
      }
    }
  2. 基础库设置
    在微信公众平台 → 设置 → 基础库最低版本设为 2.24.4+
  3. 真机调试检查项
  4. 打开调试模式查看 console.error
  5. app.json 添加 "requiredBackgroundModes": ["audio"]

备用解决方案

如果仍失败,使用官方推荐的播放组件接入方式:

<template>
  <txv-video 
    vid="g3179w437mg"
    playerid="txv1"
    :autoplay="false"
    style="width:100%;height:300px"
    @ready="handleReady" 
  />
</template>

<script>
export default {
  methods: {
    handleReady(e) {
      this.player = e.detail.player
      this.player.play()
    }
  }
}
</script>
注意:真机测试前务必在微信开发者工具设置:详情→本地设置→勾选「不校验合法域名」

修复效果验证

  1. Android测试:在 onLoad 加入 setTimeout(()=>player.play(), 1000)
  2. iOS测试:必须保持 muted: true 并绑定用户交互事件

如果问题仍然存在,可能是视频源格式问题(建议更换为 vid:"v3206frc7x6" 测试官方示例视频)

 类似资料:
  • 本文向大家介绍在小程序中使用腾讯视频插件播放教程视频的方法,包括了在小程序中使用腾讯视频插件播放教程视频的方法的使用技巧和注意事项,需要的朋友参考一下 在我们开发的一个小程序里面,为了给客户了解一些教程内容,我们需要增加一个在线播放视频的模块,考虑过直接使用视频组件播放服务器上的视频不成功,因此使用腾讯视频插件来播放最终测试成功。本篇随笔介绍微信小程序使用视频组件和腾讯视频插件两种方式的解决方式,

  • 上来甩四道题一个小时时间开写: 层序遍历树 最接近的三数之和 括号生成简单版 最小覆盖子串(没a出来,有点bug懒得改了) 15min讲题目思路 25min从数据一致性方面狠狠拷打小厂实习 5min八股 越详细越好,讲访问一个网页过程(这里脑抽了,讲了dns后就没继续往深入讲tcp连接之后的东西) 15min场景题 设计社交关注关系的存储 简单考察了冷热数据分离,分库分表,热点数据的处理和mysq

  • 投腾讯 莫名其妙被微信约面了😭😭😭 知道会很难,但还是硬着头皮上了 最后面了快两个小时 注重考察基础,但会从基础不断深入,直到你答不出来。 感觉自己答得一般,应该是挂了😇 面的东西实在是太多了,这下面都是我记得的,大多数都忘了 1.js事件循环,为什么要有事件循环,宏任务有哪些,微任务有哪些 2.HTTPS与http区别 3.http2有哪些特性 4.vue2与vue3那些区别 5.vue

  • 本文向大家介绍微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例,包括了微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍了微信小程序的开发,主要包括图片、录音、音频播放、音乐播放、视频、文件,具体如下: 图片: wx.chooseImage(OBJECT) 从本地相册选择图片或使用相机拍照。 OBJECT参数说明: 注:文

  • uniapp微信小程序怎么获取手机连接的wifi和mac地址 尝试了一些都无法获取到

  • 怎么样在微信小程序地图上手动画线、面? 微信小程序提供的API貌似只支持线、面的回显展示,不能够手动在地图上画线、面 期望结果:

  • 它是一个后端API(由RubyonRails开发),iphone和android手机使用它上传视频。API正在将上传的视频转换为MP4格式。我在后端使用曲别针ffmpeg gem进行视频转换。以下是我使用的: 我面临的问题有: 当用户从Android手机上传视频时,它在Android手机上运行良好,但在iPhone上无法播放。当用户从iPhone上传视频时,会发生另一件奇怪的事情,视频上传后,它会

  • 问题内容: 我正在使用Videogular来显示视频。当用户点击“播放”按钮以播放新视频时,能否帮助我停止/暂停其他视频?因此,一次只能让用户一次播放一个视频。 系统应自动停止正在后台播放的其他视频并播放新视频 谢谢 问题答案: 您可以分别为每个播放器获取所有API,并监听状态变化: 在您的控制器中: