首先频率有问题:
https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=00006e5976cf9866f726a217b51800&highline=video%7C%26%E7%BB%84%E4%BB%B6%7C%26%E7%9A%84%7C%26bindtimeupdate&token=905838030&lang=zh_CN
但是精度有问题,模拟器上出来是是浮点数,设备上(iOS,Android)都是整数:
代码如下:
onStartPlay () {
this.startWallClcokInSec = new Date().getTime() / 1000
this.lastVideoTimeInSec = 0.0
},
onTimeUpdate (e) {
var currentWallClockInSec = new Date().getTime() / 1000
var currentVideoTimeInSec = e.mp.detail.currentTime
var wallClock = currentWallClockInSec - this.startWallClcokInSec
console.log(`wallclock:${(wallClock).toFixed(3)}, videoTime: ${(currentVideoTimeInSec).toFixed(3)}`)
}
模拟器输出:
wallclock:1.247, videoTime: 1.098
wallclock:1.747, videoTime: 1.598
wallclock:1.997, videoTime: 1.848
wallclock:2.248, videoTime: 2.098
wallclock:2.747, videoTime: 2.598
wallclock:3.247, videoTime: 3.098
wallclock:3.747, videoTime: 3.598
wallclock:3.997, videoTime: 3.848
iOS输出:
wallclock:0.232, videoTime: 0.000
wallclock:0.234, videoTime: 0.000
wallclock:1.235, videoTime: 1.000
wallclock:2.251, videoTime: 2.000
wallclock:3.237, videoTime: 3.000
wallclock:4.241, videoTime: 4.000
wallclock:4.875, videoTime: 4.000
bindtimeupdate参数:(貌似进来只是个整数?微信小程序直播超低延迟--微信小程序教程。)
JSON.stringify(e, null, 2):
"{
"mp": {
"type": "timeupdate",
"target": {
"dataset": {
"eventid": "0"
},
"id": "",
"offsetTop": 0,
"offsetLeft": 0
},
"currentTarget": {
"dataset": {
"eventid": "0"
},
"id": "",
"offsetTop": 0,
"offsetLeft": 0
},
"timeStamp": 78938,
"detail": {
"currentTime": 4,
"duration": 4.63
}
},
"type": "timeupdate",
"timeStamp": 78938,
"target": {
"dataset": {
"eventid": "0"
},
"id": "",
"offsetTop": 0,
"offsetLeft": 0,
"currentTime": 4,
"duration": 4.63
},
"currentTarget": {
"dataset": {
"eventid": "0"
},
"id": "",
"offsetTop": 0,
"offsetLeft": 0
}
}"
设备信息:
{"errMsg":"getSystemInfo:ok","batteryLevel":95,"version":"6.6.6","system":"iOS 11.3","windowHeight":603,"pixelRatio":2,"screenHeight":667,"language":"zh_CN","statusBarHeight":20,"windowWidth":375,"model":"iPhone 7
","screenWidth":375,"fontSizeSetting":16,"brand":"iPhone","platform":"ios","SDKVersion":"1.9.98"}
本文来自微信小程序开发者论坛 微信小程序工厂 http://www.xcxgc.com 转载请保留。
微信小程序开发者回答:
李***:
谁来解释下,怎么获取毫秒级的时间。
林***:
另外,在Android上面“duration”也是就近取整……
51微信小程序face++
小***:
毫秒级的时间有方法能取到么?
林***:
所以这是没人管的意思么……
c***:
你好,请问是什么场景需要获取毫秒级的video的时间?
微信小程序picker下拉列表为什么获取不到长度
李***:
@cunjinli 还有想请问下,怎么监听到video的进度条的拖动,想根据这个来做业务处理。
c***:
现在还不支持这个功能,可以考虑通过bindtimeupdate来得到currentTime,进而得到进度条的位置
李***:
@cunjinli 未来会支持么
自定义组件有没有类似vue refs这种属性,微信小程序教程
c***:
通过bindtimeupdate来得到currentTime,进而得到进度条的位置,这个方案不能满足么?
小***:
我们有个场景是这样的,一段音频需要跟读,我们设置了一些断点来暂停播放器,暂停后用户跟读,暂停一段时间后,系统自动继续播下一段。
现在onTimeUpdate触发间隔大概是0.25秒,这个时间精度不够,经常超过我们设置的暂停点。
本文网址:http://www.91bianli.com/weixinxiaochengxu/58406.html