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 相关文章推荐
JavaScript使用prototype定义对象类型
Feb 07 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
Apr 24 Javascript
JQuery $.each遍历JavaScript数组对象实例
Sep 01 Javascript
node.js 中国天气预报 简单实现
Jun 06 Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 Javascript
微信公众号支付H5调用支付解析
Nov 04 Javascript
vue父子组件的数据传递示例
Mar 07 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
实现elementUI表单的全局验证的方法步骤
Apr 29 Javascript
js实现时钟定时器
Mar 26 Javascript
vue项目在线上服务器访问失败原因分析
Aug 14 Javascript
Vue+element+cookie记住密码功能的简单实现方法
Sep 20 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
多文件上传的例子
2006/10/09 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
linux下php上传文件注意事项
2016/06/11 PHP
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
JS trim去空格的最佳实践
2011/10/30 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
python递归计算N!的方法
2015/05/05 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
卫校中专生的自我评价
2014/01/15 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
工作经历证明书范文
2014/11/02 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
Docker部署Mysql8的实现步骤
2022/07/07 Servers