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 相关文章推荐
一个可以显示阴历的JS代码
Mar 05 Javascript
javascript 密码强弱度检测万能插件
Feb 25 Javascript
javascript验证只能输入数字和一个小数点示例
Oct 21 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
jquery简单实现鼠标经过导航条改变背景图
Dec 17 Javascript
javascript中加号(+)操作符的一些神奇作用
Jun 06 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
Nov 26 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
Apr 26 Javascript
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 jQuery
layui table去掉右侧滑动条的实现方法
Sep 05 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
vue移动端使用canvas签名的实现
Jan 15 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
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
yii框架源码分析之创建controller代码
2011/06/28 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
Python外星人入侵游戏编程完整版
2020/03/30 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
python实现大文件分割与合并
2019/07/22 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
介绍一下#error预处理
2015/09/25 面试题
创业计划书怎样才能打动风投
2014/01/01 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
信用卡工资证明范本
2014/10/17 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
领导干部失职检讨书
2015/05/05 职场文书
五一晚会主持词
2015/07/01 职场文书
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
Django框架中模型的用法
2022/06/10 Python
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript