当前位置:   article > 正文

Electron学习笔记(六) 实现四格多片源播放器_electron vite 视频播放

electron vite 视频播放

Electron学习笔记(五) 通过Addon(n-api)实现可扩展接口

 

为什么要无边框四格播放器

以前做过监控产品的开发, 其中的视频客户端支持4格, 9格, 16格等多路视频,

刚好最近自学Electron, 于是想使用Electron编写一款简单的四格播放器. 

想象一下, 同时看四个不同的精彩视频, 是不是会有更强烈的视觉冲击力. 

功能上支持:

  1.  四格播放器, 田字排布, 均分宽高.
  2.  启动即载入上次播放的过的片子.
  3.  拖拽片子进到播放器, 拖入就高亮可拖拽区.
  4.  空白,暂停,播完时显示可拖拽区, 开播隐藏.
  5.  右上角最小化/最大化/关闭三按钮. 顶部无边框, 尽量不遮挡内容.
  6.  四周可拉伸宽高.
  7.  拖拽区增加open按钮.
  8.  使用rem来实现简单的响应式, 拉伸过程中拖拽区的大小和内部字体随着变化.
  9.  每格播放器支持单独的播放, 暂停, 播放进度条, 静音, 双击全屏等操作.
  10.  播放过程中播放控制条将自动隐藏, 避免遮挡节目内容.

配置环境

配置运行环境前, 需要本地安装node.js

  1. // 安装electron
  2. npm install create-electron-app -g
  3. // 克隆或下载这个工程, 安装依赖
  4. git clone git@github.com:gzx-miller/f-player.git
  5. // 进入目录
  6. npm install
  7. // 测试
  8. npm run debug
  9. // 编译
  10. npm run build
  11. // 打包安装包
  12. npm run make


在out目录中包含编译生成的文件和打包的安装包.
f-player.exe 的整个文件夹可拷贝到任意目录作为绿色版直接运行.
f-player-1.0.0 Setup.exe 可以作为安装包, 安装在电脑上.

开源代码地址:

[f-player](https://github.com/gzx-miller/f-player)

如果喜欢我的这个作品, 请不要吝啬您的star.

创建工程

  1. npm install create-electron-app -g
  2. create-electron-app my-app

新建窗口

  1. const { BrowserWindow } = require('electron');
  2. let win = new BrowserWindow({
  3. backgroundColor: '#2e2c29',
  4. width: 400, height: 320, // 定义窗口属性
  5. parent: parent_win, modal: true, // 父窗口, 模态.
  6. frame: false,
  7. webPreferences: { nodeIntegration: true } // 这一项很关键, 5.0之后的版本, 不加这一项, require就不可用.
  8. })
  9. win.on('close', () => { win = null }) // 善后工作
  10. win.loadURL(path.join('file://.../index.html')) // 也可加载线上链接
  11. win.once('ready-to-show', () => { // 页面准备好了才show, 避免出现页面加载的过程.
  12. win.show()
  13. })
  14. win.setIgnoreMouseEvents(true) // 让窗口忽略鼠标操作,
  15. win.on('closed', () => { // 关闭
  16. win = null
  17. });
  18. app.on('activate', () => { // 窗口激活
  19. if (win === null) {
  20. createWindow()
  21. }
  22. })
  23. app.on('window-all-closed', () => { // 退出
  24. app.quit() // quit会有通知before-quit, 关闭关闭各窗口后调用will-quit, exit则不会
  25. })
  26. win.webContents.openDevTools() // 打开调试工具
  27. win.setProgressBar(0.5) // 任务栏的绿色进度条

当前元素拖拽当前窗口

  1. <div style="
  2. -webkit-user-select: none; // 关闭对页面的选取
  3. -webkit-app-region: drag/no-drag; // 该元素 是 / 否 可拖拽当前窗口
  4. "/>

窗口操作

  1. win.maximize() // 最大化
  2. win.unmaximize() // 取消最大化
  3. win.isMaximized() // 是否最大化
  4. win.minimize() // 最小化
  5. win.restore() // 还原
  6. win.isMinimized() // 是否最小化


参考:


Eletron官网: http://www.electronjs.org/

Electron学习笔记(七) C++编译Electron


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/999030
推荐阅读
相关标签
  

闽ICP备14008679号