ZyPlayer视频播放模式详解:窗口、全屏与画中画
【免费下载链接】ZyPlayer 跨平台桌面端视频资源播放器,免费高颜值. 项目地址: https://gitcode.com/gh_mirrors/zy/ZyPlayer
在日常视频观看中,你是否遇到过需要一边看教程一边记笔记,或者想在工作时小窗口播放直播的情况?ZyPlayer作为跨平台桌面视频播放器,提供了灵活多样的播放模式,满足不同场景下的观看需求。本文将详细介绍窗口播放、全屏模式和画中画(PiP)三种核心播放模式的使用方法及实现原理,帮助你充分利用播放器的界面功能。
播放模式概览
ZyPlayer的播放模式设计围绕用户场景展开,通过模块化的播放器组件实现多模式切换。核心播放逻辑由multi-player.tsx组件控制,支持ArtPlayer、XgPlayer等多种播放器内核适配。
三种播放模式的主要特点对比:
| 模式 | 适用场景 | 操作入口 | 核心控制 |
|---|---|---|---|
| 窗口播放 | 常规观看、多任务并行 | 播放器默认状态 | 窗口大小调节、位置拖动 |
| 全屏模式 | 沉浸式观影、大屏展示 | 右下角全屏按钮或F11 | 退出快捷键、控制面板自动隐藏 |
| 画中画 | 后台播放、多窗口协同 | 控制栏画中画图标 | 悬浮窗口拖动、置顶显示 |
窗口播放模式
窗口播放是启动播放器后的默认模式,提供完整的播放控制界面和侧边信息面板。用户可通过拖动窗口边缘调整尺寸,或点击侧边栏切换按钮(位于播放器右侧中部)显示/隐藏视频信息面板。
界面组成
窗口模式下的界面布局在play/index.vue中定义,主要包含三个区域:
- 顶部控制栏:显示视频标题、窗口控制按钮(最小化/最大化/关闭)
- 主播放区域:视频渲染主窗口,占界面核心位置
- 侧边信息面板:可展开/收起,显示视频详情、播放列表等辅助信息
<t-layout>
<t-header> <!-- 顶部控制栏 --> </t-header>
<t-layout>
<t-content> <!-- 主播放区域 --> </t-content>
<t-aside> <!-- 侧边信息面板 --> </t-aside>
</t-layout>
</t-layout>
尺寸调节与布局切换
通过拖动窗口边框可自由调整播放窗口大小,播放器会自动适配视频比例。点击播放器右侧的展开/收起按钮(<chevron-left-icon>和<chevron-right-icon>)可切换侧边栏显示状态,扩大播放区域面积。
窗口模式特别适合需要同时查看视频内容和相关信息的场景,如观看教学视频时参考课程大纲,或浏览影视详情时切换集数。
全屏模式
全屏模式提供沉浸式观影体验,隐藏操作系统窗口边框和任务栏,让视频内容占据整个屏幕。ZyPlayer支持两种全屏方式:标准全屏和网页全屏,分别通过不同API实现。
激活与退出
激活全屏模式的三种方式:
- 点击播放器控制栏右下角的全屏按钮
- 使用键盘快捷键F11
- 在播放控制菜单中选择"全屏播放"选项
退出全屏模式同样支持三种方式:
- 按ESC键
- 点击全屏状态下显示的"退出全屏"按钮
- 再次按F11键
技术实现
全屏功能在播放器内核适配器中实现,以ArtPlayerAdapter为例,通过调用浏览器全屏API实现模式切换:
// 核心全屏控制逻辑
async toggleFullscreen() {
if (!this.player) return;
if (document.fullscreenElement) {
await document.exitFullscreen();
} else {
await this.player.container.requestFullscreen();
}
}
在全屏状态下,播放器控制面板会在鼠标静置几秒后自动隐藏,移动鼠标时重新显示,既保证观影沉浸感,又方便随时进行播放控制。
画中画模式
画中画(Picture-in-Picture,PiP)模式允许视频在小悬浮窗口中播放,同时用户可在其他应用或窗口中工作,实现多任务并行处理。这一模式特别适合观看直播、教程或会议时需要同时操作其他内容的场景。
启用方式
画中画模式的启用入口位于播放器控制栏,图标为重叠的两个矩形(类似电视画中画符号)。点击后视频会缩小为悬浮窗口,可拖动至屏幕任意位置,原播放器窗口则可关闭或用于其他操作。
功能特性
画中画模式具有以下特点:
- 窗口置顶显示,不受其他应用遮挡
- 支持基本播放控制(播放/暂停、进度调节、音量控制)
- 可通过拖动边缘调整悬浮窗口大小
- 关闭悬浮窗口会自动恢复至正常播放模式
实现原理
ZyPlayer的画中画功能通过Electron的窗口管理API结合HTML5 PiP API实现,核心逻辑在winManger/index.ts中处理窗口创建与管理:
// 简化的画中画窗口创建代码
createPiPWindow(url, position, size) {
return new BrowserWindow({
width: size.width,
height: size.height,
x: position.x,
y: position.y,
alwaysOnTop: true,
frame: false,
transparent: true,
webPreferences: {
nodeIntegration: false,
contextIsolation: true
}
});
}
模式切换与快捷键
ZyPlayer支持通过快捷键快速切换播放模式,提升操作效率。常用模式相关快捷键:
| 功能 | 快捷键 |
|---|---|
| 切换全屏 | F11 |
| 启用画中画 | Alt+P |
| 窗口置顶 | Ctrl+T |
| 调整窗口大小(等比例) | Ctrl+鼠标拖动边框 |
快捷键配置可在设置页面自定义,相关配置存储在setting.ts状态管理模块中。
实际应用场景
多模式协同使用示例
-
学习场景:
- 初始使用窗口模式观看教程视频,展开侧边栏查看课程大纲
- 需要记笔记时切换至画中画模式,将悬浮窗口拖至屏幕角落
- 遇到重点内容需要仔细观看时,切换至全屏模式
-
直播观看场景:
- 窗口模式浏览直播列表,选择感兴趣的直播进入
- 切换至画中画模式继续观看,同时在主窗口浏览其他内容
- 直播精彩部分切换至全屏模式获得更好体验
注意事项
- 画中画模式下部分快捷键可能失效,建议使用鼠标操作悬浮窗口
- 全屏模式下若出现视频比例失调,可在设置中调整"画面拉伸"选项
- 多显示器环境下,全屏模式仅作用于当前视频所在显示器
自定义与扩展
高级用户可通过修改配置文件或使用插件扩展播放模式功能。播放器核心配置在play.ts中定义,包含默认播放器选择、快捷键设置、界面布局等参数。
外部播放器集成
ZyPlayer支持调用外部播放器程序,在play/index.vue中通过以下代码实现:
// 外部播放器调用逻辑
if (playerMode.type === 'custom') {
window.electron.ipcRenderer.invoke('call-player', {
path: playerMode.external,
url: playerFormData.value.url
});
}
用户可在设置中指定外部播放器路径,如PotPlayer、VLC等,满足个性化播放需求。
插件扩展
开发者可通过编写播放器插件扩展模式功能,插件系统相关代码位于plugin/目录,支持自定义控制逻辑和界面元素。
总结
ZyPlayer的三种播放模式覆盖了从常规观看、沉浸式体验到多任务处理的全场景需求,通过直观的界面设计和灵活的控制方式,让用户可根据内容类型和使用场景自由切换。核心实现基于模块化的播放器组件和Electron窗口管理API,既保证了跨平台一致性,又提供了丰富的自定义选项。
掌握这些播放模式的使用技巧,能显著提升视频观看体验,尤其是在多任务处理和内容消费场景下。如需了解更多高级功能,可参考项目官方文档或查看播放器组件源码实现。
【免费下载链接】ZyPlayer 跨平台桌面端视频资源播放器,免费高颜值. 项目地址: https://gitcode.com/gh_mirrors/zy/ZyPlayer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



