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表单验证代码(包括例子)
Nov 11 Javascript
通过百度地图获取公交线路的站点坐标的js代码
May 11 Javascript
js修改地址栏URL参数解决url参数问题
Dec 15 Javascript
JavaScript实现添加、查找、删除元素
Jul 02 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
Sep 19 Javascript
WEB 前端开发中防治重复提交的实现方法
Oct 26 Javascript
浅析BootStrap中Modal(模态框)使用心得
Dec 24 Javascript
Javascript中Promise的四种常用方法总结
Jul 14 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
Jul 21 Javascript
vue axios 表单提交上传图片的实例
Mar 16 Javascript
jquery实现二级导航下拉菜单效果实例
May 14 jQuery
vue实现购物车的小练习
Dec 21 Vue.js
基于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新手上路(五)
2006/10/09 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
php中请求url的五种方法总结
2017/07/13 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
淘宝搜索框效果实现分析
2011/03/05 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
JavaScript实现点击按钮字体放大、缩小
2016/02/29 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
python生成lmdb格式的文件实例
2018/11/08 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
外企测试工程师面试题
2015/02/01 面试题
初一生物教学反思
2014/01/18 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
揭牌仪式主持词
2014/03/19 职场文书
专家推荐信模板
2014/05/09 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
领导干部失职检讨书
2015/05/05 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫