html52.com
我爱小程序-开发者交流社区

video playbackRate在多款android手机上无效的问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug wx.createVideoContext(videoId, this) / playbackRate 客户端 Android 6.6.5 1.9.97

小程序api中有视频倍速的功能

文档如下:https://developers.weixin.qq.com/miniprogram/dev/api/api-video.html#wxcreatevideocontextvideoid


使用时方法如下:

this.videoContext = wx.createVideoContext('myVideo')

this.videoContext.playbackRate(Number(currentPlayRate));


但实际使用中发现,同样的代码,部分Android手机倍速功能无效

无效手机型号:

1. vivo X5L  Android版本:4.4.2

2.oppo r7

...


希望官方可以尽快解决,即使无法解决也希望可以给到明确答复,以便我们退出挽救措施,谢谢!!!


网友回复

张翔:

张翔:你好 这是我们小程序基础库的最低版本 大部分用户我们都是让其升级到最新版微信的 所以用户的小程序基础库肯定是符合要求的

你好 这是我们小程序基础库的最低版本 大部分用户我们都是让其升级到最新版微信的 所以用户的小程序基础库肯定是符合要求的

cunjinli:

你好,请问下你的公共库的版本是多少?这个功能是1.4.0以上的公共库才支持的。

张翔:

代码片段链接


wechatide://minicode/SBOzPBmp6AZ8

娇华:

你好,你还是提供代码片段吧,这样方便我们定位问题。

代码片段是一种可分享的小项目,可用于分享小程序和小游戏的开发经验、展示组件和 API 的使用、复现开发问题等等。分享代码片段会得到一个链接,所有拥有此分享链接的人可以在工具中导入此代码片段。如果网页可点击的链接指向的是分享链接,那么点击链接也会自动打开工具进入代码片段导入页。请按照文档指引提供




张翔:

部分代码如下

.wxml

<!--pages/chapter/chapter.wxml-->
<view class='page'>
  <video id='myVideo' class='chapter_video' hidden='{{!hasLoadSuccess}}' src='{{videoUrl}}' autoplay='{{autoPlay}}' custom-cache='{{false}}' bindplay='videoPlay' bindpause='videoPause' bindended='videoEnded' bindtimeupdate='videoTimeUpdate' bindwaiting="videoWaiting" binderror="videoError" data-vid='{{vid}}' poster="{{videoPoster}}" controls="{{true}}" show-center-play-btn="{{false}}" initial-time="{{videoInitialTime}}">
  </video>
  <view class='chapter_status' hidden='{{!hasLoadSuccess}}'>
    <radio-group class="play_rate_radio_group" bindchange="playRateRadioChange">
      <label class="play_rate_radio_wrap" wx:for="{{playRateItems}}" wx:key="{{item.index}}">
        <radio value="{{item.index}}" checked="{{item.checked}}" color="#6b6b6b"/>{{item.value}}
      </label>
    </radio-group>

  </view>

 ......

</view>

.js

// pages/chapter/chapter.js
const app = getApp()
const TAG = "PageChapter"
var utils = require('../../utils/util.js')
const videoUrl = require('../../config').videoUrl
 
Page({
 
    /**
     * 页面的初始数据
     */
    data: {
        hasLoadSuccess: false,
        vid: "",
        videoPoster: "../../res/video_poster.png",
        videoUrl: null,
        videoInitialTime: 0, //当前视频初始播放时间
 
        currentPlayRate: 1.0,
        playRateItems: [{
                index: "0",
                value: "0.8倍",
                checked: false,
                rate: 0.8
            },
            {
                index: "1",
                value: "1.0倍",
                checked: true,
                rate: 1.0
            },
            {
                index: "2",
                value: "1.5倍",
                checked: false,
                rate: 1.5
            },
        ],
        autoPlay: true,
    },
 
    //播放倍速选择
    playRateRadioChange: function (event) {
        utils.log(event);
        var index = Number(event.detail.value);
        var playRateItems = this.data.playRateItems;
        for (var i = 0, len = playRateItems.length; i < len; i++) {
            if (index == i) {
                playRateItems[i].checked = true;
                try {
                    var currentPlayRate = playRateItems[i].rate;
                    if (this.videoContext) {
                        this.videoContext.playbackRate(Number(currentPlayRate));
                        wx.showToast({
                            icon: "success",
                            title: playRateItems[i].value + '速播放',
                            duration: 2000
                        })
                        this.setData({
                            currentPlayRate: currentPlayRate
                        })
                    }
                } catch (e) {
                    utils.log(e);
                    wx.showModal({
                        title: '提示',
                        content: '倍速播放失败 请稍候再试哦',
                        showCancel: false,
                        confirmText: "确定"
                    })
                }
            } else {
                playRateItems[i].checked = false;
            }
        }
        this.setData({
            playRateItems: playRateItems
        })
    },
 
    //视频播放回调
    videoPlay: function (event) {
        utils.log(event)
        var currentPlayRate = this.data.currentPlayRate;
        if (this.videoContext) {
            this.videoContext.playbackRate(currentPlayRate);
        }
    },
 
    //视频暂停回调
    videoPause: function (event) {
        utils.log(event)
    },
 
    //视频观看时间更新回调
    videoTimeUpdate: function (event) {
        utils.log(event)
    },
 
    //视频播放出错回调
    videoError: function (event) {
        utils.log(event);
    },
 
    //视频加载中回调
    videoWaiting: function (event) {
        utils.log(event);
    },
 
    //视频播放完成回调
    videoEnded: function (event) {
        utils.log(event);
    },
 
    //处理加载视频相关详情(地址、是否反馈过、是否看完)成功
    disposeLoadVideoDetailSuccess: function (data) {
        this.setData({
            videoUrl: encodeURI(data.sd),
            hasLoadSuccess: true,
        })
    },
 
    //处理加载视频相关详情(地址、是否反馈过、是否看完)失败
    disposeLoadVideoUrlFail: function () {
        this.setData({
            hasLoadSuccess: false
        })
    },
 
    //获取视频播放地址
    loadVideoUrl: function () {
        var _this = this
        this.setData({
            isLoadVideoDetailSuccess: false,
            feedback: null,
            hasLoadPlayUrlComplete: false,
            isShowCoverView: true,
            loadVUrlStatus: loadVUrlStatus
        })
        var data = {
            "vid": this.data.vid,
        };
        app._request(
            videoUrl,
            data,
            function (res) {
                utils.log(res)
                if (200 === res.statusCode) {
                    _this.disposeLoadVideoDetailSuccess(res.data)
                } else {
                    _this.disposeLoadVideoUrlFail()
                }
            },
            function (res) {
                utils.log(res)
                _this.disposeLoadVideoUrlFail()
            }
        )
    },
 
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        utils.log(TAG + " onLoad")
        this.loadVideoUrl()
    },
 
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {
        this.videoContext = wx.createVideoContext('myVideo')
    },
 
    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        utils.log(TAG + " onShow")
    },
 
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {
        utils.log(TAG + " onHide")
    },
 
    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {
        utils.log(TAG + " onUnload")
    },
 
    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {
 
    },
 
    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {
 
    },
 
    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {
 
    }
})


默认1倍速 切换 1.5倍速 和 0.8倍速时问题手机无效

娇华:

你好,方便给个代码片段?我们定位下问题

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付