说明:本文档适用于小部件3.0。
video组件用于在小部件场景中进行视频播放,用户可对播放器进行UI操作,开发者则可通过API对视频播放进行控制以及接收组件事件获得播放状态。
iOS:10.3.10及以上版本。
Android:10.3.16及以上版本。
需要 小部件 2.0。
<view> <video id="myVideo" class="video" src="{{src}}" autoplay="{{autoplay}}" loop="{{isLooping}}" muted="{{muted}}" controls="{{showControls}}" object-fit="{{objectFit}}" initial-time="{{initTime}}" show-mute-btn="{{showMuteBtn}}" mobilenet-hint-type="{{mobilenetHintType}}" show-thin-progressBar="{{showThinProgressBar}}" enable-progress-gesture="{{enableProgressGesture}}" onLoading="onLoading" onRenderStart="onRenderStart" onPlay="onPlay" onPause="onPause" onEnded="onEnded" onStop="onStop" onTimeUpdate="onTimeUpdate" onError="onError" /> <view class="btn" onTap="play"> play </view> <view class="btn" onTap="pause"> pause </view> <view class="btn" onTap="seek"> seek:5 </view> <view class="btn" onTap="mute"> mute </view> <view class="btn" onTap="stop"> stop </view> </view>
Component({ data: { src: "https://cloud.video.taobao.com//play/u/907349826/p/1/e/6/t/1/315729994409.mp4", autoplay:true, isLooping:true, muted:true, showControls:true, objectFit:"contain", initTime: 5, showMuteBtn:true, mobilenetHintType:1, showThinProgressBar:true, enableProgressGesture:true }, didMount() { this.isMute = true; this.videoContext = my.createVideoContext('myVideo'); }, didUpdate() { }, didUnmount() { }, methods: { // 组件事件 onLoading(event) { console.log("onLoading"); }, onRenderStart(event) { console.log("onRenderStart"); }, onPlay(event) { my.alert({ content: "onPlay"}); }, onPause(event) { my.alert({ content: "onPause"}); }, onEnded(event) { my.alert({ content: "onEnded"}); }, onStop(event) { my.alert({ content: "onStop"}); }, onTimeUpdate(event) { console.log("onTimeUpdate"); }, onError(event) { my.alert({ content: "onError"}); }, // API调用 play() { this.videoContext.play(); }, pause() { this.videoContext.pause(); }, stop() { this.videoContext.stop(); }, seek() { this.videoContext.seek(5); }, mute() { this.isMute = !this.isMute; this.videoContext.mute(this.isMute); }, }, });
.video { width: 650rpx; height: 360rpx; } .btn { width: 200rpx; height: 50rpx; background-color: #f35d0d; margin-top: 15rpx; }
注:属性值目前无法通过setData进行动态修改。
名称 |
最低支持版本 |
描述 |
onLoading |
10.3.0 |
视频出现缓冲时触发 |
onRenderStart |
10.3.0 |
当视频加载完真正开始播放时触发 |
onPlay |
10.3.0 |
当开始/继续播放时触发 |
onPause |
10.3.0 |
当暂停播放时触发 |
onEnded |
10.3.0 |
当播放到末尾时触发 |
onStop |
10.3.0 |
视频播放终止时触发,销毁播放器实例,释放资源 |
onTimeUpdate |
10.3.0 |
播放进度变化时触发,参数说明: currentTime: "当前播放时间(单位s)" userPlayDuration: "用户实际观看时长(单位s)" videoDuration: "视频总时长(单位s)" |
onError |
10.3.0 |
视频播放出错时触发 |
名称 |
参数名 |
参数类型 |
描述 |
play |
/ |
/ |
播放 |
pause |
/ |
/ |
暂停播放 |
stop |
/ |
/ |
停止播放,销毁播放器实例,释放资源 |
seek |
time |
Number |
跳转到指定位置,单位为秒(s) |
mute |
ison |
Boolean |
切换静音状态,参数值:true-静音,false-打开声音 |
playbackRate |
rate |
Number |
回访速率 |
由于视频播放器的大多数属性在初始化后就无法修改,因此目前不支持通过setData方法来修改video属性,建议提前获取相关属性,在初始化video标签时进行设置;
鉴于实际应用中对修改src有较多诉求,src的修改会在后续版本进行支持。
poster功能已支持,参见上方属性表格;show-fullscreen-btn在小部件应用场景有限,近期暂没有计划支持。