uni-app videoContext.playbackRate() 设置播放倍速 真机调试安卓平板不生效

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app videoContext.playbackRate() 设置播放倍速 真机调试安卓平板不生效

信息类别 详细信息
产品分类 uniapp/App
PC开发环境 Mac
PC版本号 macOS 13.2
HBuilderX 正式
HBuilderX版本号 3.99
手机系统 Android
手机版本号 Android 12
手机厂商 荣耀
手机机型 荣耀平板8
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

<template>  
    <view>  
        <video id="myVideo" controls src="xxxx" ref="myVideo" autoplay />  
        <view class="button">  
            <button @click="handleChange(0.5)">0.5</button>  
            <button @click="handleChange(0.8)">0.8</button>  
            <button @click="handleChange(1)">1</button>  
            <button @click="handleChange(1.25)">1.25</button>  
            <button @click="handleChange(1.5)">1.5</button>  
        </view>  
    </view>  
</template>  

<script>  
export default {  
    data() {  
        return {  

        };  
    },  
    methods: {  
        handleChange(e) {  
            let videoContext = uni.createVideoContext('myVideo')  
            videoContext.playbackRate(e);  
        }  
    }  
}  
</script>  

<style lang="scss">  
    video {  
        height: 400rpx;  
        width: 100%;  
    }  

    .button {  
        margin-top: 20rpx;  
    }  
</style>  

视频src路径为本地摄像头录像的mp4文件

操作步骤:

  • 视频加载完成后开始播放
  • 点击按钮 更改播放速率

预期结果:

  • 视频播放速率改为相对应按钮的速率

实际结果:

  • 视频速率未改变,还是一倍速

6 回复

同样的代码 编译成H5 设置倍速是生效的 确认app端不生效


有没有人遇到过啊 …

一个月了 有没有官方来回复一下啊

4个月了 有官方的人回复嘛

一年了,遇到同样的问题,是怎么解决的呢?

uni-app 中,使用 videoContext.playbackRate() 来设置视频的播放倍速时,如果真机调试时在安卓平板上不生效,可能是以下几个原因导致的:

1. 平台兼容性问题

  • 不同平台对 playbackRate 的支持程度可能不同。playbackRate 在部分安卓设备上可能不完全支持,或者支持的倍速范围有限。
  • 确保你测试的设备支持 playbackRate,并且在该设备上使用原生播放器时倍速设置是有效的。

2. 视频格式问题

  • 某些视频格式可能不支持倍速播放。确保你使用的视频格式(如 MP4)在安卓设备上支持倍速播放。

3. uni-app 版本问题

  • 确保你使用的 uni-app 版本是最新的,旧版本可能存在一些兼容性问题。可以通过更新 uni-app 和相关依赖库来解决问题。

4. 代码实现问题

  • 确保你在正确的时机调用 playbackRate() 方法。通常需要在 video 组件的 loadedmetadata 事件触发后才能设置倍速。

示例代码:

<template>
  <view>
    <video id="myVideo" src="https://example.com/sample.mp4" @loadedmetadata="onVideoLoaded"></video>
  </view>
</template>

<script>
export default {
  methods: {
    onVideoLoaded() {
      const videoContext = uni.createVideoContext('myVideo');
      videoContext.playbackRate(2.0); // 设置为2倍速
    }
  }
}
</script>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!