js HTML5多媒体影音播放

之前曾经介绍过,在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)//裁切后绘制图像

<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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java微信开发之上传下载多媒体文件

    回复图片.音频.视频消息都是需要media_id的,这个是需要将多媒体文件上传到微信服务器才有的. 将多媒体文件上传到微信服务器,以及从微信服务器下载文件,可以参考:http://mp.weixin.qq.com/wiki/index.php?title=上传下载多媒体文件 上传下载多媒体文件的方法还是写到WeixinUtil.java中. 代码如下: import java.io.BufferedOutputStream; import java.io.BufferedReader; impo

  • jQuery Flash/MP3/Video多媒体插件

    1,  jQuery Flash 插件 jQuery Flash 插件 主要提供Flash在WEB页面的嵌入式解决方案. 2,jPlayer jPlayer是一款用于在网页上播放和控制Mp3文件的jQuery插件. 它使用一个在后台的Flash文件来播放Mp3文件,播放器的任何一个地方都可以在XHML/CSS文件里控制. 3,Embed QuickTime Embed QuickTime帮助你直接在网页中插入可播放的QuickTime影片的jQuery插件. 4,jMP3 jMP3提供一种简单的

  • Android实现多媒体录音笔

    记事本涉及到的仅仅是对string 的存储,而且在读取上并不存在什么难点,直接用textview显示便可以了.需要做的主要是使用SQLite对数据进行一个整理. 而录音笔需要考虑的就相对较多了:比如录音时中断,录音时用户点击播放按钮:未录音,用户点击停止按钮;在录音或者播放时关闭activity:listview的item中需要为button设置不同的点击效果等等. 为了便于新手学习,在此还是罗列一下涉及的主要知识点: 1.Baseadapter 2.JAVA的file 3.MediaRecor

  • Android多媒体之画画板开发案例分享

    先看看效果: 其实画画板的原理很简单,就是首先记录下按下屏幕的点,然后每移动一下就让这两次移动的点连线,周而复始,图像就由很多条直线构成了. 核心代码 : public class MainActivity extends Activity implements OnClickListener,OnSeekBarChangeListener { private View red_view,green_view,blue_view; //控制画笔颜色的三块区域 private SeekBar se

  • jQuery多媒体插件jQuery Media Plugin使用详解

    jQuery Media Plugin是一款基于jQuery的网页媒体播放器插件,它支持大部分的网络多媒体播放器和多媒体格式,比如:Flash, Windows Media Player, Real Player, Quicktime, MP3,Silverlight, PDF.它根据当前的脚本配置,自动将a标签替换成div,并生成object, embed甚至是iframe代码,至于生成object还是embed,jQuery Media会根据当前平台自动判别,因此兼容性方面非常出色.下面这段

  • Android中扫描多媒体文件操作详解

    这篇文章从系统源代码分析,讲述如何将程序创建的多媒体文件加入系统的媒体库,如何从媒体库删除,以及大多数程序开发者经常遇到的无法添加到媒体库的问题等.本人将通过对源代码的分析,一一解释这些问题. Android中的多媒体文件扫描机制 Android提供了一个很棒的程序来处理将多媒体文件加入的媒体库中.这个程序就是MediaProvider,现在我们简单看以下这个程序.首先看一下它的Receiver 复制代码 代码如下: <receiver android:name="MediaScanner

  • Java常用的一些多媒体文件基本操作方法简介

    播放幻灯片和动画 用实例说明播放幻灯片和动画的方法. [例]小应用程序先将幻灯片读入数组在存储,单击鼠标变换幻灯片,逐张显示. import java.applet.*import java.awt.*; import java.awt.event.*; public class Example7_7 extends Applet implements MouseListener{ final int number = 50; //假定幻灯片有50张 int count = 0; Image[]

  • Android的多媒体管理库Glide的基本使用示例

    Glide 是一个android平台上的快速和高效的开源的多媒体资源管理库, 提供 多媒体文件的压缩,内存和磁盘缓存, 资源池的接口. Glide 支持获取,解压展示视频, 图像和GIFs,  Glide有一个可弹性的api可以让开发者自定义网络栈技术, 默认使用HttpUrlConnection , 你可以替换为  Google's Volley或者 OkHttp Glide 开始的目的是提供一个快速和平滑展示图片列表, 但是Glide对你需要拉取, resize 和展示远程的图片这些场景都是

  • Java设计图形与多媒体处理

    本文实现了两个效果: 第一种,同心圆效果图: /** *程序要求:新建一个600*600像素的应用程序窗口,并在窗口中绘制5个不同颜色的同心圆, *所有圆心都是屏幕的中心点,相邻两个圆直接的半径相差50像素 *效果图如下图所示(颜色随机设置),源程序保存为Ex7_1.java. *作者:wwj *日期:2012/4/25 *功能:显示一个有5个不同颜色的同心圆 **/ import javax.swing.*; import java.awt.*; import java.awt.Color;

  • 基于jQuery的网页影音播放器jPlayer的基本使用教程

    jPlayer简介: 想在网页上播放背景音乐,不想用html标签的方式,因为那样只有音乐全部下载完以后才能播放,还容易出现跨浏览器兼容性的问题,于是选了一款基于jQuery的播放器jPlayer来做. 设置jPlayer的尺寸大小 使用构造函数配置jPlayer({size:Object})设置jPlayer的高宽. 使用构造函数配置jPlayer({sizeFull:Object})设置全屏尺寸. 注意可通过构造函数配置jPlayer({backgroundColor:"#RRGGBB&quo

随机推荐