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 相关文章推荐
greybox——不开新窗口看新的网页
Feb 20 Javascript
深入认识javascript中的eval函数
Nov 02 Javascript
jQuery 渐变下拉菜单
Dec 15 Javascript
JavaScript Event学习第二章 Event浏览器兼容性
Feb 07 Javascript
js实现单一html页面两套css切换代码
Apr 11 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
Oct 29 Javascript
jQuery中clearQueue()方法用法实例
Dec 29 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
JavaScript Math.round() 方法
Dec 18 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
May 15 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
Jul 09 Javascript
Node.js API详解之 timer模块用法实例分析
May 07 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小程序自动提交到自助友情连接
2009/11/24 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
js获取对象为null的解决方法
2013/11/21 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
Python Cookie 读取和保存方法
2018/12/28 Python
python生成带有表格的图片实例
2019/02/03 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
python实现文件的分割与合并
2019/08/29 Python
python进行参数传递的方法
2020/05/12 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
日语系毕业生推荐信
2013/11/11 职场文书
计算机个人求职信范例
2014/01/24 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
MySQL数据库 任意ip连接方法
2022/05/20 MySQL