当前位置:首页 > 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

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>

响应式全屏状态

监听全屏状态变化:

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怎么实现视频全屏

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

相关文章

php 实现上传视频

php 实现上传视频

上传视频的基本流程 在PHP中实现视频上传功能需要处理文件接收、验证、存储等步骤。核心是通过$_FILES超全局变量获取上传的文件信息,结合move_uploaded_file函数完成存储。 创建…

vue实现视频直播

vue实现视频直播

Vue 实现视频直播的方法 使用 video.js 和 HLS 协议 安装 video.js 和 videojs-contrib-hls 插件: npm install video.js vide…

vue实现视频录制

vue实现视频录制

实现视频录制的基本思路 在Vue中实现视频录制通常需要借助浏览器的MediaDevices API和MediaRecorder API。核心流程包括获取用户摄像头/麦克风权限、录制媒体流、保存录制结果…

vue实现视频id

vue实现视频id

Vue 中实现视频 ID 管理 在 Vue 中管理视频 ID 通常涉及动态绑定、状态管理和 API 交互。以下是几种常见场景的实现方法: 动态绑定视频 ID 到播放器 通过 v-bind 或 :…

vue项目实现视频

vue项目实现视频

视频播放基础实现 在Vue项目中实现视频播放,可以使用HTML5的<video>标签。以下是一个基础示例: <template> <div> &…

vue实现全屏切换

vue实现全屏切换

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