|
@@ -36,7 +36,16 @@ export default defineComponent({
|
|
|
default: false
|
|
|
}
|
|
|
},
|
|
|
- emits: ['canplay', 'pause', 'togglePlay', 'ended', 'reset', 'error', "close"],
|
|
|
+ emits: [
|
|
|
+ 'canplay',
|
|
|
+ 'pause',
|
|
|
+ 'togglePlay',
|
|
|
+ 'ended',
|
|
|
+ 'reset',
|
|
|
+ 'error',
|
|
|
+ 'close',
|
|
|
+ 'loadedmetadata'
|
|
|
+ ],
|
|
|
setup(props, { emit, expose }) {
|
|
|
const { item, isEmtry } = toRefs(props);
|
|
|
const videoFroms = reactive({
|
|
@@ -113,13 +122,14 @@ export default defineComponent({
|
|
|
);
|
|
|
videoFroms.durationNum = videoItem.value.duration();
|
|
|
|
|
|
- emit('canplay', videoItem.value);
|
|
|
+ emit('canplay');
|
|
|
+ emit('loadedmetadata', videoItem.value);
|
|
|
});
|
|
|
|
|
|
// 视频开始播放
|
|
|
videoItem.value.on('play', () => {
|
|
|
- emit('close')
|
|
|
- emit('canplay')
|
|
|
+ emit('close');
|
|
|
+ emit('canplay');
|
|
|
});
|
|
|
|
|
|
// 视频播放时加载
|
|
@@ -139,7 +149,7 @@ export default defineComponent({
|
|
|
//
|
|
|
videoItem.value.on('pause', () => {
|
|
|
videoFroms.paused = true;
|
|
|
- emit('pause')
|
|
|
+ emit('pause');
|
|
|
});
|
|
|
|
|
|
videoItem.value.on('playing', () => {
|
|
@@ -147,13 +157,12 @@ export default defineComponent({
|
|
|
});
|
|
|
|
|
|
videoItem.value.on('canplay', (e: any) => {
|
|
|
- console.log('canplay', );
|
|
|
// 获取时长
|
|
|
videoFroms.duration = timeFormat(
|
|
|
Math.round(videoItem.value.duration())
|
|
|
);
|
|
|
videoFroms.durationNum = videoItem.value.duration();
|
|
|
- emit('canplay')
|
|
|
+ emit('canplay');
|
|
|
});
|
|
|
|
|
|
// 视频播放异常
|
|
@@ -176,17 +185,23 @@ export default defineComponent({
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- watch(() => props.item, (val, oldVal) => {
|
|
|
- videoItem.value.pause();
|
|
|
- videoItem.value.currentTime(0)
|
|
|
- videoItem.value.poster(props.item.coverImg); // 封面
|
|
|
- videoItem.value.src(item.value.content); // url 播放地址
|
|
|
- videoFroms.paused = true;
|
|
|
- })
|
|
|
- watch(() => props.showModel, () => {
|
|
|
- // console.log(props.showModel, 'props.showModel')
|
|
|
- videoFroms.showAction = props.showModel;
|
|
|
- })
|
|
|
+ watch(
|
|
|
+ () => props.item,
|
|
|
+ (val, oldVal) => {
|
|
|
+ videoItem.value.pause();
|
|
|
+ videoItem.value.currentTime(0);
|
|
|
+ videoItem.value.poster(props.item.coverImg); // 封面
|
|
|
+ videoItem.value.src(item.value.content); // url 播放地址
|
|
|
+ videoFroms.paused = true;
|
|
|
+ }
|
|
|
+ );
|
|
|
+ watch(
|
|
|
+ () => props.showModel,
|
|
|
+ () => {
|
|
|
+ // console.log(props.showModel, 'props.showModel')
|
|
|
+ videoFroms.showAction = props.showModel;
|
|
|
+ }
|
|
|
+ );
|
|
|
expose({
|
|
|
onPlay,
|
|
|
stop,
|
|
@@ -201,7 +216,7 @@ export default defineComponent({
|
|
|
id={videoID.value}
|
|
|
preload="auto"
|
|
|
playsinline
|
|
|
- webkit-playsinline
|
|
|
+ webkit-playsinline
|
|
|
x5-video-player-type="h5"></video>
|
|
|
|
|
|
<div
|