当前位置:首页 > VUE

vue怎么实现视频全屏

2026-02-24 19:34:01VUE

Vue 中实现视频全屏的方法

使用 HTML5 Fullscreen API

通过调用原生 Fullscreen API 实现全屏控制,适用于现代浏览器:

// 获取视频元素
const videoElement = document.getElementById('video-player');

// 进入全屏
function requestFullscreen() {
  if (videoElement.requestFullscreen) {
    videoElement.requestFullscreen();
  } else if (videoElement.webkitRequestFullscreen) { /* Safari */
    videoElement.webkitRequestFullscreen();
  } else if (videoElement.msRequestFullscreen) { /* IE11 */
    videoElement.msRequestFullscreen();
  }
}

// 退出全屏
function exitFullscreen() {
  if (document.exitFullscreen) {
    document.exitFullscreen();
  } else if (document.webkitExitFullscreen) { /* Safari */
    document.webkitExitFullscreen();
  } else if (document.msExitFullscreen) { /* IE11 */
    document.msExitFullscreen();
  }
}

使用第三方库

安装 screenfull 库简化全屏操作:

npm install screenfull

在 Vue 组件中使用:

import screenfull from 'screenfull';

export default {
  methods: {
    toggleFullscreen() {
      const video = this.$refs.videoPlayer;
      if (screenfull.isEnabled) {
        screenfull.toggle(video);
      }
    }
  }
}

视频播放器组件集成

使用现成的视频播放器组件如 vue-video-player

vue怎么实现视频全屏

npm install vue-video-player

配置全屏功能:

import { videoPlayer } from 'vue-video-player';

export default {
  components: {
    videoPlayer
  },
  data() {
    return {
      playerOptions: {
        autoplay: false,
        controls: true,
        sources: [{
          src: 'video-source.mp4',
          type: 'video/mp4'
        }],
        controlBar: {
          fullscreenToggle: true // 启用全屏按钮
        }
      }
    };
  }
};

自定义全屏按钮

在模板中添加自定义全屏控制按钮:

<template>
  <div>
    <video ref="videoPlayer" controls></video>
    <button @click="toggleFullscreen">全屏</button>
  </div>
</template>

响应式全屏状态

监听全屏状态变化:

vue怎么实现视频全屏

export default {
  mounted() {
    document.addEventListener('fullscreenchange', this.handleFullscreenChange);
  },
  beforeDestroy() {
    document.removeEventListener('fullscreenchange', this.handleFullscreenChange);
  },
  methods: {
    handleFullscreenChange() {
      this.isFullscreen = !!document.fullscreenElement;
    }
  }
};

CSS 全屏样式

添加全屏时的样式优化:

video:-webkit-full-screen {
  width: 100%;
  height: 100%;
}

移动端适配

针对移动设备添加特殊处理:

function isMobileDevice() {
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
}

function requestMobileFullscreen(video) {
  video.webkitEnterFullscreen();
}

全屏事件处理

处理全屏状态变化事件:

videoElement.addEventListener('enterfullscreen', () => {
  console.log('进入全屏');
});
videoElement.addEventListener('leavefullscreen', () => {
  console.log('退出全屏');
});

标签: 全屏视频
分享给朋友:

相关文章

vue实现视频

vue实现视频

Vue 实现视频播放的方法 在 Vue 项目中实现视频播放可以通过多种方式完成,以下是几种常见的方法: 使用 HTML5 的 <video> 标签 在 Vue 组件中直接使用 HTML…

vue 实现上传视频

vue 实现上传视频

使用 Vue 实现上传视频功能 在 Vue 中实现上传视频功能,通常需要结合 HTML 的 <input type="file"> 元素和 Vue 的事件处理。以下是具体实现方法: 基本…

vue实现全屏切换

vue实现全屏切换

实现全屏切换的基本方法 使用 Vue 实现全屏切换可以通过浏览器提供的 Fullscreen API 来实现。以下是一个完整的实现方案。 安装必要的依赖(如需要) npm install scre…

vue实现全屏截图

vue实现全屏截图

实现全屏截图的方法 在Vue中实现全屏截图,可以通过第三方库或原生API完成。以下是几种常见的方法: 使用html2canvas库 安装html2canvas库: npm install…

vue实现视频流

vue实现视频流

Vue实现视频流的方法 在Vue中实现视频流通常涉及HTML5的<video>标签、WebRTC或第三方库。以下是几种常见的方法: 使用HTML5 video标签 通过HTML5的<…

vue实现手机全屏

vue实现手机全屏

Vue 实现手机全屏的方法 使用 Fullscreen API 现代浏览器提供了 Fullscreen API,可以通过 JavaScript 请求全屏。在 Vue 中,可以通过调用这些 API 实现…