uniapp微信小程序video的回调事件如何使用
在uniapp开发微信小程序时,video组件的回调事件(如onPlay、onPause等)具体该怎么使用?我在官方文档看到有这些事件,但在实际使用时发现无法触发,不知道是不是绑定方式有问题。能否提供一个完整的示例代码,说明如何正确绑定和监听这些回调事件?
2 回复
在uniapp中,使用微信小程序video组件的回调事件,只需在video标签上绑定事件即可。例如:
<video @play="onPlay" @pause="onPause" @ended="onEnded"></video>
然后在methods中定义对应方法:
methods: {
onPlay() { console.log('开始播放') },
onPause() { console.log('暂停播放') },
onEnded() { console.log('播放结束') }
}
常用事件还有:timeupdate(播放进度更新)、error(播放错误)等。
在 UniApp 中,微信小程序的 <video> 组件提供了多个回调事件,用于处理视频播放状态、进度、错误等。以下是常用回调事件及使用方法:
常用回调事件
- play:开始播放时触发。
- pause:暂停播放时触发。
- ended:播放结束时触发。
- timeupdate:播放进度变化时触发(每秒约4次)。
- error:视频播放出错时触发。
- waiting:视频缓冲时触发。
- progress:加载进度变化时触发。
使用方法
在 <video> 组件中绑定事件,并在 Vue 方法中定义对应的处理函数。
示例代码
<template>
<view>
<video
src="https://example.com/video.mp4"
@play="onPlay"
@pause="onPause"
@ended="onEnded"
@timeupdate="onTimeUpdate"
@error="onError"
@waiting="onWaiting"
@progress="onProgress"
></video>
</view>
</template>
<script>
export default {
methods: {
onPlay() {
console.log('视频开始播放');
},
onPause() {
console.log('视频已暂停');
},
onEnded() {
console.log('视频播放结束');
},
onTimeUpdate(event) {
console.log('当前播放时间:', event.detail.currentTime);
},
onError(event) {
console.error('播放错误:', event.detail.errMsg);
},
onWaiting() {
console.log('视频缓冲中...');
},
onProgress(event) {
console.log('加载进度:', event.detail.buffered);
}
}
}
</script>
注意事项
- 事件回调参数通常通过
event.detail获取详细信息(如currentTime、buffered等)。 - 确保视频路径有效,避免因加载失败触发错误事件。
- 测试时建议使用真机,部分事件在开发者工具中可能无法完全模拟。
通过合理使用这些回调,可以实现播放控制、进度显示和错误处理等功能。

