You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.6 KiB
105 lines
2.6 KiB
1 year ago
|
<template>
|
||
|
<div>
|
||
|
<video id='video1' class="video" :src="src" autoplay="false" duration="" controls="true" :danmu-list="list"
|
||
|
danmu-btn="true" enable-danmu="true" :loop="true" muted="true" initial-time="" direction="-90"
|
||
|
show-mute-btn="true" @play="onstart" @pause="onpause" @ended="onfinish" @error="onfail" @waiting="waiting"
|
||
|
@timeupdate="timeupdate" @fullscreenchange="fullscreenchange"></video>
|
||
|
<button class="btn" @click="play">播放</button>
|
||
|
<button class="btn" @click="pause">暂停</button>
|
||
|
<button class="btn" @click="seek">跳转到指定位置</button>
|
||
|
<button class="btn" @click="stop">停止</button>
|
||
|
<button class="btn" @click="fullScreen">全屏</button>
|
||
|
<button class="btn" @click="exitFullScreen">退出全屏</button>
|
||
|
<button class="btn" @click="playbackRate">设置倍速</button>
|
||
|
<button class="btn" @click="sendDanmu">发送弹幕</button>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
export default {
|
||
|
data() {
|
||
|
return {
|
||
|
src: "https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20181126-lite.m4v",
|
||
|
fil: true,
|
||
|
list: [{
|
||
|
text: '要显示的文本',
|
||
|
color: '#FF0000',
|
||
|
time: 9
|
||
|
}]
|
||
|
}
|
||
|
},
|
||
|
onReady() {
|
||
|
this.context = uni.createVideoContext("video1", this);
|
||
|
},
|
||
|
methods: {
|
||
|
onstart(e) {
|
||
|
console.log("onstart:" + JSON.stringify(e));
|
||
|
},
|
||
|
onpause(e) {
|
||
|
console.log("onpause:" + JSON.stringify(e));
|
||
|
},
|
||
|
onfinish(e) {
|
||
|
console.log("onfinish:" + JSON.stringify(e));
|
||
|
},
|
||
|
onfail(e) {
|
||
|
console.log("onfail:" + JSON.stringify(e));
|
||
|
},
|
||
|
fullscreenchange(e) {
|
||
|
console.log("fullscreenchange:" + JSON.stringify(e));
|
||
|
},
|
||
|
waiting(e) {
|
||
|
console.log("waiting:" + JSON.stringify(e));
|
||
|
},
|
||
|
timeupdate(e) {
|
||
|
console.log("timeupdate:" + JSON.stringify(e));
|
||
|
},
|
||
|
|
||
|
play() {
|
||
|
this.context.play();
|
||
|
},
|
||
|
pause() {
|
||
|
this.context.pause();
|
||
|
},
|
||
|
seek() {
|
||
|
this.context.seek(20);
|
||
|
},
|
||
|
stop() {
|
||
|
this.context.stop();
|
||
|
},
|
||
|
fullScreen() {
|
||
|
this.context.requestFullScreen({
|
||
|
direction: 90
|
||
|
});
|
||
|
},
|
||
|
exitFullScreen() {
|
||
|
this.context.exitFullScreen();
|
||
|
},
|
||
|
sendDanmu() {
|
||
|
this.context.sendDanmu({
|
||
|
text: '要显示的弹幕文本',
|
||
|
color: '#FF0000'
|
||
|
});
|
||
|
},
|
||
|
playbackRate() {
|
||
|
this.context.playbackRate(2);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style>
|
||
|
.video {
|
||
|
width: 750rpx;
|
||
|
/* #ifdef H5 */
|
||
|
width: 100%;
|
||
|
/* #endif */
|
||
|
height: 400rpx;
|
||
|
background-color: #808080;
|
||
|
}
|
||
|
|
||
|
.btn {
|
||
|
margin-top: 5px;
|
||
|
margin-bottom: 5px;
|
||
|
}
|
||
|
</style>
|