JavaScript实现自定义媒体播放器方法介绍


Posted in Javascript onJanuary 03, 2017

使用<audio>和<video>元素的play()和pause()方法,可以手工控制媒体文件的播放。组合使用属性、事件和这两个方法,很容易创建一个自定义的媒体播放器,如下面的例子所示。

<div class="mediaplayer">
  <div class="video">
    <video id="player" src="movie.mov" poster="mymovie.jpg"
    width="300" height="200">
    Video player not available.
    </video>
  </div>
  <div class="controls">
    <input type="button" value="Play" id="video-btn">
    <span id="curtime">0</span>/<span id="duration">0</span>
  </div>
</div>

以上基本的HTML 再加上一些JavaScript 就可以变成一个简单的视频播放器。以下就是JavaScript代码。

window.onload=function(){
  var player = document.getElementById("player"),
  oBtn = document.getElementById("video-btn"),
  curtime = document.getElementById("curtime"),
  duration = document.getElementById("duration");
  //更新播放时间
  duration.innerHTML = player.duration;
  oBtn.onclick = function(){
    if (player.paused){
      player.play();
      oBtn.value = "Pause";
    } 
    else {
      player.pause();
      oBtn.value = "Play";
    }
  }
  //定时更新当前时间
  setInterval(function(){
    curtime.innerHTML = player.currentTime;
  }, 250);
}

以上JavaScript 代码给按钮添加了一个事件处理程序,单击它能让视频在暂停时播放,在播放时暂停。通过<video>元素的load 事件处理程序,设置了加载完视频后显示播放时间。最后,设置了一个计时器,以更新当前显示的时间。你可以进一步扩展这个视频播放器,监听更多事件,利用更多属性。而同样的代码也可以用于<audio>元素,以创建自定义的音频播放器。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jquery实现table鼠标经过变色代码
Sep 25 Javascript
jQuery中index()方法用法实例
Dec 27 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
基于JavaScript实现随机颜色输入框
Dec 10 Javascript
Javascript基础回顾之(三) js面向对象
Jan 31 Javascript
vue-loader教程介绍
Jun 14 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
Aug 22 Javascript
详解Vue实战指南之依赖注入(provide/inject)
Nov 13 Javascript
使用vscode快速建立vue模板过程详解
Oct 10 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
Aug 03 Javascript
JS求解三元一次方程组值的方法
Jan 03 #Javascript
Vue.js系列之项目结构说明(2)
Jan 03 #Javascript
Vue.js系列之项目搭建(1)
Jan 03 #Javascript
jquery实现下拉框多选方法介绍
Jan 03 #Javascript
jQuery实现可拖拽3D万花筒旋转特效
Jan 03 #Javascript
详解JavaScript常量定义
Jan 03 #Javascript
两种简单的跨域方法(jsonp、php)
Jan 02 #Javascript
You might like
PHP 加密与解密的斗争
2009/04/17 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php获取apk包信息的方法
2014/08/15 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
smarty中post用法实例
2014/11/28 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
jQuery操作css样式
2017/05/15 jQuery
jquery拖动改变div大小
2017/07/04 jQuery
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
跟老齐学Python之??碌某?? target=
2014/09/12 Python
Python运算符重载用法实例
2015/05/28 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
Python enumerate内置库用法解析
2020/02/24 Python
Python如何实现线程间通信
2020/07/30 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
如何一键升级Python所有包
2020/11/05 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
会计工作心得体会
2014/01/13 职场文书
管理提升方案
2014/06/04 职场文书
建筑安全生产责任书
2014/07/22 职场文书
入党现实表现材料
2014/12/23 职场文书