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 相关文章推荐
菜单效果
Oct 14 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
基于jQuery的图片不完全按比例自动缩小
Jul 11 Javascript
js/jquery判断浏览器类型的方法小结
May 12 Javascript
AngularJS上拉加载问题解决方法
May 23 Javascript
javascript实现非常简单的小数取整功能示例
Jun 13 Javascript
浅析Vue 生命周期
Jun 21 Javascript
解决vue中修改export default中脚本报一大堆错的问题
Aug 27 Javascript
使用webpack4编译并压缩ES6代码的方法示例
Apr 24 Javascript
JavaScript常用内置对象用法分析
Jul 09 Javascript
关于小程序优化的一些建议(小结)
Dec 10 Javascript
JavaScript实现原型封装轮播图
Dec 27 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的同学录程序(2)
2006/10/09 PHP
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
深入解析php中的foreach函数
2013/08/31 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
python框架中flask知识点总结
2018/08/17 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
python爬取微信公众号文章的方法
2019/02/26 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
构建高效的python requests长连接池详解
2020/05/02 Python
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
毕业生个人求职信范例分享
2013/12/17 职场文书
成立公司计划书
2014/05/07 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
2014年业务工作总结
2014/11/17 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
2015年公司工作总结
2015/04/25 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
在Python 中将类对象序列化为JSON
2022/04/06 Python
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android