问题模块 | 框架类型 | 问题类型 | 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 > |
.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倍速时问题手机无效
娇华:
你好,方便给个代码片段?我们定位下问题