window.onresize

这个事件主要用于当浏览器窗口发生改变时,实时获取video的width和height;
代码示例:

window.onresize=function() {//  控制窗口不小于800时,进行video的width和height的重新获取;if(document.documentElement.clientWidth>=800) {video.width = document.documentElement.clientWidth;video.height = document.documentElement.clientHeight - controler.offsetHeight;}}

video.play()和video.pause()

这两个方法主要用于播放暂停按钮的事件切换;
代码示例:

startOrpause.onclick=function(){//判断视频是否时暂停状态,注意暂停状态是:video.paused;要与video.pause()方法区别开来;if(video.paused) {// 播放暂停按钮的精灵图切换startOrpause.classList.add('active');//    点击按钮后,让video播放;video.play();timer = setInterval(move,100);}else {// 播放暂停按钮的精灵图切换startOrpause.classList.remove('active');//  点击按钮让video暂停播放;video.pause();clearInterval(timer);}}

video.currentTime

获取video当前播放的进度时间;
这个property属性使用非常频繁;
比如当点击停止按钮时,设置video.currentTime;
当拖动播放进度条时,也需要实时获取它;

video.duration

获取当前视频文件的总共需要的播放时间。
当拖动或点击播放进度条时,关联进度条的长度和当前播放时间;

// 当前时间=总时间*(当前进度条拖动的距离/总共进度条的长度)
//  播放进度条点击事件
progress1.onclick=function(ev){ev = ev || event;video.currentTime = video.duration * ((ev.clientX - this.offsetLeft)/this.clientWidth);progressBtn1.style.left = progressBgc1.style.width = (progress1.clientWidth - progressBtn1.offsetWidth )* (video.currentTime / video.duration)+ 'px';
}

video.muted和video.volume

这两个property是在设置声音进度条和静音按钮上使用;
当设置video.muted=true时,video.volume的值并没有重置为0;

全屏按钮设置需要的方法

全屏是浏览器内部写好的,我们可以直接调用,但是不同的浏览器,API的名称不一样;
全屏可以是任意元素,比如div,img;
全屏兼容性写法:

//   判断是否全屏,isFullScreen是自定义的布尔值变量;
if(isFullScreen) {  //fullScreenSpan是获取的代表全屏的元素;// 全屏 ---> 不是全屏 --> removefullScreenSpan.classList.remove("active");isFullScreen = false//  w3c标准的退出全屏方法;if (document.exitFullscreen) {  document.exitFullscreen();  }  //   火狐的退出全屏方法else if (document.mozCancelFullScreen) {  document.mozCancelFullScreen();  }  //   谷歌和webkit内核的退出全屏方法else if (document.webkitCancelFullScreen) {  document.webkitCancelFullScreen();  }//  IE的退出全屏方法else if (document.msExitFullscreen) {document.msExitFullscreen();}
} else {fullScreenSpan.classList.add("active");isFullScreen = truevar docElm = document.documentElement;//  w3c标准的设置全屏方法;if (docElm.requestFullscreen) {  docElm.requestFullscreen();  }//   火狐的退出设置全屏方法else if (docElm.mozRequestFullScreen) {  docElm.mozRequestFullScreen();  }// 谷歌和webkit内核的设置全屏方法else if (docElm.webkitRequestFullScreen) {  docElm.webkitRequestFullScreen();  }//IE11设置全屏方法else if (docElm.msRequestFullscreen) {docElm.msRequestFullscreen();}
}

总时间duration的显示

获取总时间video.duration之前,需要事件监听,需要做兼容写法;

loadeddata   媒体的第一帧已经加载完毕。
suspend 在媒体资源加载终止时触发,这可能是因为下载已完成或因为其他原因暂停。
//  谷歌浏览器duration显示video.addEventListener('suspend',function(){durationTime.innerHTML=changeTimeStyle(video.duration);})//  火狐浏览器和IE的duration显示video.addEventListener('loadeddata',function(){durationTime.innerHTML=changeTimeStyle(video.duration);})

自定义video播放器的常用的事件。相关推荐

  1. H5 实现自定义video播放器,快来点我吧

    效果 要实现自定义video播放器需要熟悉video的相关操作 视频播放它有哪些操作         1. 播放 play()         2. 暂停 pause()         3. 判断当 ...

  2. JS 用CANVAS自定义VIDEO播放器

    JS 用CANVAS自定义VIDEO播放器 概述 CANVAS绘制核心代码 播放器代码 使用页面HTML代码 使用页面JS代码 使用示例 概述 HTML5用规范的VIDEO标签取代了以往需要借助外部控 ...

  3. html5+video手机样式修改,如何自定义video播放器样式?

    本篇文章给大家分享了关于如何自定义video播放器样式,内容很详细,希望可以帮助到大家. DIY 本文基于HTML5 Video API,自定义Web视频播放器样式. 其实吧,原生的video 标签样 ...

  4. html自定义video播放器

    本章的css可以说约等于没有,全是逻辑,仅供参考 html <!DOCTYPE html> <html lang="en"> <head>< ...

  5. 玩转前端 Video 播放器

    Web 开发者们一直以来想在 Web 中使用音频和视频,但早些时候,传统的 Web 技术不能够在 Web 中嵌入音频和视频,所以一些像 Flash.Silverlight 的专利技术在处理这些内容上变 ...

  6. 【Web技术】662- 玩转前端 Video 播放器

    Web 开发者们一直以来想在 Web 中使用音频和视频,但早些时候,传统的 Web 技术不能够在 Web 中嵌入音频和视频,所以一些像 Flash.Silverlight 的专利技术在处理这些内容上变 ...

  7. 模拟video播放器

    更新: 关于第二点,也就是说计算进度条拖放按钮定位的问题. 很感谢 batsing 同学提供了更好的方案: 滑块左偏量 = (进度条长 - 滑块长) * (已播时间/总时长) 尝试过之后发现除了拖曳滑 ...

  8. Android自定义一个播放器控件

    介绍 最近要使用播放器做一个简单的视频播放功能,开始学习VideoView,在横竖屏切换的时候碰到了点麻烦,不过在查阅资料后总算是解决了.在写VideoView播放视频时候定义控制的代码全写在Actv ...

  9. 微信中H5同层Video播放器接入教程

    微信中H5同层Video播放器接入教程 x5-video-player-type 启用H5同层播放器 通过video属性"x5-video-player-type"声明启用同层H5 ...

最新文章

  1. 数据结构与算法:09 栈与递归
  2. Unity Shader基本例子
  3. 基于mxnet的Regression问题Kaggle比赛代码框架
  4. Error creating bean with name ‘tokenBean‘ defined spring找不到Bean
  5. nsdictionary获取值_objective-c – 在NSDictionary中获取值
  6. Win7中的clr_optimization服务
  7. 哈希集合——hashSet
  8. LLDB使用详解以及断点调试教程
  9. 2022美国大学生数学建模竞赛D题思路
  10. STM32 Boot模式设置方法
  11. 数据统计分析(1):数据分析流程
  12. 使用SYUGI快速创建类似于Office XP/2003 界面风格的应用程序
  13. 计算机设计大赛报道,我院在中国大学生计算机设计大赛中再创佳绩
  14. h5 字体加粗_HTML中如何将字体加粗
  15. auto.js 快手自动评论脚本 引流操作
  16. F 魏迟燕的自走棋(思维+贪心+并查集维护联通块/左部点配对边<=2的匈牙利)
  17. 「AI芯片公司」比特大陆的路线图上,除了四款TPU还有在这三个产业落地的野心
  18. flash设置屏保 html,全面淘汰 Flash 带崩经典屏保软件:教你一招搞定它
  19. 基于Qt实现桌面宠物
  20. python进入目录 cd_Linux cd命令:切换目录

热门文章

  1. 地理视角下的北京租房选择
  2. 更快 Maven 来袭,性能大幅提升
  3. 关于编译QGIS3.22.12配置的python库
  4. 双显示器 启动黑屏 黑苹果_黑苹果修改分辨率之后黑屏(频率超出显示器范围)...
  5. mercury php,XAMPP配置Mercury 邮件服务器教程
  6. 开源免费关系数据库模型建模工具
  7. 麦蒂谈无上场机会爆粗口 称帕克十年季后最佳
  8. linux raid测试,linux 软件RAID实验
  9. html取消转义符,HTML转义符
  10. html转义字符和选择器(详)