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 相关文章推荐
IE6 fixed的完美解决方案
Mar 31 Javascript
jquery实现的一个简单进度条效果实例
May 12 Javascript
12种JavaScript常用的MVC框架比较分析
Nov 16 Javascript
微信小程序入门教程
Nov 18 Javascript
js实现鼠标拖动功能
Mar 20 Javascript
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
使用react-router4.0实现重定向和404功能的方法
Aug 28 Javascript
实例教学如何写vue插件
Nov 30 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
Jan 04 Javascript
JS常见构造模式实例对比分析
Aug 27 Javascript
微信小程序实现的动态设置导航栏标题功能示例
Jan 31 Javascript
js+html实现周岁年龄计算器
Jun 25 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 fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
PHP中soap的用法实例
2014/10/24 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
javascript 闭包详解
2015/07/02 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
token 机制和实现方式
2020/12/15 Javascript
利用pandas合并多个excel的方法示例
2019/10/10 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
中国最大的名表商城:万表网
2016/08/29 全球购物
荷兰之家英文站:Holland at Home
2016/10/26 全球购物
德国高性价比网上药店:medpex
2017/07/09 全球购物
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
医学毕业生自荐信
2013/10/11 职场文书
银行服务感言
2014/03/01 职场文书
投资意向书范本
2014/04/01 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
《海上日出》教学反思
2016/02/23 职场文书