js HTML5多媒体影音播放


Posted in Javascript onOctober 17, 2016

之前曾经介绍过,在HTML5中可以通过<video>标签在网页中播放影片,且不需要再安装额外的插件,此功能已经带给用户极大的便利。但基本的<video>标签只提供了简单功能的播放器界面,如果想要改变播放器的外观和功能,只能结合<canvas>标签和javascript语句,就能制作出酷炫的播放控制器。

{drawImage}

画布canvas如何与视频video标签结合,达到制作各种视频功能的效果呢?其秘诀在于通过画布重新描绘一次视频的内容,将视频的每个画面都转换成画布的图像,这样就可以通过javascript语言所提供的图像控制方法来操控它们。所以炫酷播放器所使用的视频功能,并不针对video,而是针对描绘出影像的canvas。

能够描绘影像到画布中的方法是“drawImage",此方法允许在canvas中插入画布(canvas),图像(img)和视频(video)等元素。

drawImage方法有三种:

drawImage(image,dx,dy)//原比例绘制图像
drawImage(image,dx,dy,dw,dh)//按设置长宽绘制图像
drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)//裁切后绘制图像

js HTML5多媒体影音播放

js HTML5多媒体影音播放

<html> 
 <head> 
   <meta charset="utf-8"/> 
   <style> 
    canvas{ 
      border:1px solid black; 
    } 
   </style> 
   
   <script > 
    function draw(){ 
      var imgx = new Image(); 
      imgx.src = 'img/gophers-Slice_Scoreboard.png'; 
      imgx.onload = function(){ 
        var canvas = document.getElementById('myCanvas'); 
        var context = canvas.getContext('2d'); 
        context.drawImage(this,20,20,75,75); 
      } 
    } 
  </script> 
 </head> 
 <body onload="draw()"> 
  <p>Image:</p> 
  <img id="pic"src="img/gophers-Slice_Scoreboard.png" alt="pic" width="50" height="50"> 
  <p>Canvas:</p> 
  <canvas id="myCanvas" style="border:1px solid;"> 
  </canvas> 
 </body> 
</html>

简单地通过drawImage描绘图像也许看不出来canvas的强大,其实真正精彩的是可以通过画布上描绘的结果加入javascript语句来实现的特效效果或功能。

接下来示范如何用javascript指令动态调整视频播放器的大小。

<html> 
 <head> 
   <meta charset="utf-8"/> 
   <style> 
   </style> 
   
   <script > 
    function eventWindowLoaded(){ 
    var videoElement=document.getElementById("theVideo"); 
    var widthtoHeightRatio=videoElement.width/videoElement.height; 
    var sizeElement=document.getElementById("videoSize"); 
    sizeElement.addEventListener('change',videoSizeChanged,false); 
    function videoChanged(e){ 
      var target=e.target; 
      var videoElement=document.getElementById("theVideo"); 
      videoElement.width=target.value; 
      videoElement.height=target.value/widthtoHeightRatio; 
    } 
    } 
  </script> 
 </head> 
 <body onload="eventWindowLoaded()"> 
 <div> 
  <form>Video Size: 
  <input type="range" id="videoSize" min="80" max="1280" step="1" value="320"/> 
  </form> 
  </div> 
  <div> 
  <video autoplay loop controls id="theVideo" src="funny.mp4" width="320" height="240"></video> 
  </div> 
 </body> 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Tab页界面 用jQuery及Ajax技术实现(php后台)
Oct 12 Javascript
Extjs Gird 支持中文拼音排序实现代码
Apr 15 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
Aug 08 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
jQuery实现简单隔行变色的方法
Feb 20 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
Dec 14 Javascript
JavaScript定时器制作弹窗小广告
Feb 05 Javascript
简单实现js倒计时功能
Feb 13 Javascript
vue 1.x 交互实现仿百度下拉列表示例
Oct 21 Javascript
JS实现运动缓冲效果的封装函数示例
Feb 18 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
Sep 26 Javascript
基于JavaScript实现前端文件的断点续传
Oct 17 #Javascript
js html5 css俄罗斯方块游戏再现
Oct 17 #Javascript
Node.js包管理器Yarn的入门介绍与安装
Oct 17 #Javascript
深入理解JS实现快速排序和去重
Oct 17 #Javascript
JavaScript中关键字 in 的使用方法详解
Oct 17 #Javascript
Angular 2应用的8个主要构造块有哪些
Oct 17 #Javascript
jQuery表单验证简单示例
Oct 17 #Javascript
You might like
PHP+DBM的同学录程序(4)
2006/10/09 PHP
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
javascript生成大小写字母
2015/07/03 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
原生JS实现垂直手风琴效果
2017/02/19 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
Python sys.argv用法实例
2015/05/28 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
python进程和线程用法知识点总结
2019/05/28 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
巴西手表购物网站:eclock
2019/03/19 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
感恩的演讲稿
2014/05/06 职场文书
会计学专业自荐信
2014/06/25 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
如何使用pdb进行Python调试
2021/06/30 Python
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android