1、小程序首页有一个点击唤起video视频全屏播放的一个操作,我原先是在子组件里面写的
html
<video
@fullscreenchange="leaveVideo"
:src="video_src"
controls
autoplay
id="marathonVideoId"
class="viedo_inner"
:show-fullscreen-btn="false"
:direction="0"
loop>
</video>
js处理
const video_src = ref<string>('');
// 视频调起全屏处理
const openRedeem = (src: string) => {
console.log(src);
const videoContext = uni.createVideoContext('marathonVideoId', this);
video_src.value = src;
videoContext.requestFullScreen();
const timer = setTimeout(() => {
videoContext.play();
clearTimeout(timer);
}, 500);
};
// 视频进入或退出全屏时调用
const leaveVideo = (e: any) => {
console.log(e);
const videoContext = uni.createVideoContext('marathonVideoId', this);
if (!e.detail.fullScreen) {
videoContext.pause();
}
};
我在微信开发者工具上编译,效果:视频没有调起但是后台有视频的声音,另外我调用的@fullscreenchange函数在微信开发者后台也没有打印日志
然后我把子组件的代码全部移至到首页写,就轻轻松松调起来了。(目前还是不知道为什么移动到首页就可以实现)
2、在之前也用过video实现全屏操作,有好几个页面是需要点击调起全屏。当时没唤起成功,后续查阅资料是因为我定义 video 的id 和之前的一样,需要注意的是 video中id命名不能和其他页面的video名字重合,否则无法唤起全屏