使用jQuery播放/暂停 HTML5视频
文章来自:http://blog.okbase.net/jquery2000/archive/4485.html
我尝试用jQuery控制HTML5视频,两个视频分别在两个tab中,我希望点中tab后,该tab里的视频可以立即播放,而另外tab里的视频能够停止。
我的代码是这样的:
$( '#playMovie1' ).click(function(){ $( '#movie1' ).play(); }); |
但发现这样不行,而用以下的js是可以的:
document.getElementById( 'movie1' ).play(); |
解决方法:
play并不是jQuery的函数,而是DOM元素的函数,所以我们需要通过DOM来调用play,代码如下:
$( '#videoId' ).get( 0 ).play(); |
最简单的方法实现Play和Pause:
$( 'video' ).trigger( 'play' ); $( 'video' ).trigger( 'pause' ); |
点击视频就能播放和暂停
$( "video" ).trigger( "play" ); //for auto play $( "video" ).addClass( 'pause' ); //for check pause or play add a class $( 'video' ).click(function() { if ($( this ).hasClass( 'pause' )) { $( "video" ).trigger( "play" ); $( this ).removeClass( 'pause' ); $( this ).addClass( 'play' ); } else { $( "video" ).trigger( "pause" ); $( this ).removeClass( 'play' ); $( this ).addClass( 'pause' ); } }) |
静音和取消静音
$( 'body' ).find( "video" ).attr( 'id' , 'video' ) var myVid = document.getElementById( "video" ); $( '.sound-icon' ).click(function() { //here "sound-icon" is a anchor class. var sta = myVid.muted; if (sta == true ) { myVid.muted = false ; } else { myVid.muted = true ; } }) |
HTML 5中播放视频的方法:
<video width= "640" height= "360" src= "http://www.youtube.com/demo/google_main.mp4" controls autobuffer> <p> Try this page in Safari 4 ! Or you can </video> |
自动播放:
<video src= "abc.mov" autoplay> </video> |
使用poster在视频无法加载时显示图片:
<video width= "640" height= "360" src= "http://www.youtube.com/demo/google_main.mp" autobuffer controls poster= "whale.png" > <p>Try this page in Safari 4 ! Or you can <a href= "http://www.youtube.com/demo/google_main.mp4" >download the video</a> instead.</p> </video> |
一个比较简洁的例子:
<script type= "text/javascript" > function vidplay() { var video = document.getElementById( "Video1" ); var button = document.getElementById( "play" ); if (video.paused) { video.play(); button.textContent = "||" ; } else { video.pause(); button.textContent = ">" ; } } function restart() { var video = document.getElementById( "Video1" ); video.currentTime = 0 ; } function skip(value) { var video = document.getElementById( "Video1" ); video.currentTime += value; } </script> </head> <body> <video id= "Video1" > // Replace these with your own video files. <source src= "demo.mp4" type= "video/mp4" /> <source src= "demo.ogv" type= "video/ogg" /> HTML5 Video is required for this example. <a href= "demo.mp4" >Download the video</a> file. </video> <div id= "buttonbar" > <button id= "restart" onclick= "restart();" >[]</button> <button id= "rew" onclick= "skip(-10)" ><<</button> <button id= "play" onclick= "vidplay()" >></button> <button id= "fastFwd" onclick= "skip(10)" >>></button> </div> |
下面是一个比较完整的例子:
<html > <head> <title>Full player example</title> <!-- Uncomment the following meta tag if you have issues rendering this page on an intranet or local site. --> <!-- <meta http-equiv= "X-UA-Compatible" content= "IE=edge" /> --> <script type= "text/javascript" > function init() { // Master function, encapsulates all functions var video = document.getElementById( "Video1" ); if (video.canPlayType) { // tests that we have HTML5 video support // if successful, display buttons and set up events document.getElementById( "buttonbar" ).style.display = "block" ; document.getElementById( "inputField" ).style.display = "block" ; // helper functions // play video function vidplay(evt) { if (video.src == "" ) { // inital source load getVideo(); } button = evt.target; // get the button id to swap the text based on the state if (video.paused) { // play the file, and display pause symbol video.play(); button.textContent = "||" ; } else { // pause the file, and display play symbol video.pause(); button.textContent = ">" ; } } // load video file from input field function getVideo() { var fileURL = document.getElementById( "videoFile" ).value; // get input field if (fileURL != "" ) { video.src = fileURL; video.load(); // if HTML source element is used document.getElementById( "play" ).click(); // start play } else { errMessage( "Enter a valid video URL" ); // fail silently } } // button helper functions // skip forward, backward, or restart function setTime(tValue) { // if no video is loaded, this throws an exception try { if (tValue == 0 ) { video.currentTime = tValue; } else { video.currentTime += tValue; } } catch (err) { // errMessage(err) // show exception errMessage( "Video content might not be loaded" ); } } // display an error message function errMessage(msg) { // displays an error message for 5 seconds then clears it document.getElementById( "errorMsg" ).textContent = msg; setTimeout( "document.getElementById('errorMsg').textContent=''" , 5000 ); } // change volume based on incoming value function setVol(value) { var vol = video.volume; vol += value; // test for range 0 - 1 to avoid exceptions if (vol >= 0 && vol <= 1 ) { // if valid value, use it video.volume = vol; } else { // otherwise substitute a 0 or 1 video.volume = (vol < 0 ) ? 0 : 1 ; } } // button events // Play document.getElementById( "play" ).addEventListener( "click" , vidplay, false ); // Restart document.getElementById( "restart" ).addEventListener( "click" , function () { setTime( 0 ); }, false ); // Skip backward 10 seconds document.getElementById( "rew" ).addEventListener( "click" , function () { setTime(- 10 ); }, false ); // Skip forward 10 seconds document.getElementById( "fwd" ).addEventListener( "click" , function () { setTime( 10 ); }, false ); // set src == latest video file URL document.getElementById( "loadVideo" ).addEventListener( "click" , getVideo, false ); // fail with message video.addEventListener( "error" , function (err) { errMessage(err); }, true ); // volume buttons document.getElementById( "volDn" ).addEventListener( "click" , function () { setVol(-. 1 ); // down by 10% }, false ); document.getElementById( "volUp" ).addEventListener( "click" , function () { setVol(. 1 ); // up by 10% }, false ); // playback speed buttons document.getElementById( "slower" ).addEventListener( "click" , function () { video.playbackRate -= . 25 ; }, false ); document.getElementById( "faster" ).addEventListener( "click" , function () { video.playbackRate += . 25 ; }, false ); document.getElementById( "normal" ).addEventListener( "click" , function () { video.playbackRate = 1 ; }, false ); document.getElementById( "mute" ).addEventListener( "click" , function (evt) { if (video.muted) { video.muted = false ; evt.target.innerHTML = "<img alt='volume on button' src='vol2.png' />" } else { video.muted = true ; evt.target.innerHTML = "<img alt='volume off button' src='mute2.png' />" } }, false ); } // end of runtime } // end of master </script> </head> <body onload= "init();" > <video id= "Video1" controls style= "border: 1px solid blue;" height= "240" width= "320" title= "video element" > HTML5 Video is required for this example </video> <div id= "buttonbar" style= "display: none;" )> <button id= "restart" title= "Restart button" >[]</button> <button id= "slower" title= "Slower playback button" >-</button> <button id= "rew" title= "Rewind button" ><<</button> <button id= "play" title= "Play button" >></button> <button id= "fwd" title= "Forward button" >>></button> <button id= "faster" title= "Faster playback button" >+</button> <button id= "Button2" title= "Mute button" ><img alt= "Volume on button" src= "vol2.png" /></button> <br /> <label>Playback </label> <label>Reset playback rate: </label><button id= "normal" title= "Reset playback rate button" >=</button> <label> Volume </label> <button id= "volDn" title= "Volume down button" >-</button> <button id= "volUp" title= "Volume up button" >+</button> <button id= "mute" title= "Mute button" ><img alt= "Volume on button" src= "vol2.png" /></button> </div> <br/> <div id= "inputField" style= "display:none;" > <label>Type or paste a video URL: <br/> <input type= "text" id= "videoFile" style= "width: 300px;" title= "video file input field" value= "http://ie.microsoft.com/testdrive/ieblog/2011/nov/pp4_blog_demo.mp4" /> <button id= "loadVideo" title= "Load video button" >Load</button> </label> </div> <div title= "Error message area" id= "errorMsg" style= "color:Red;" ></div> </body> </html> |
使用jQuery播放/暂停 HTML5视频的更多相关文章
- 【轉】使用jQuery播放/暂停 HTML5视频
jQuery不可以使用play()方法,但js是可以的: document.getElementById('movie1').play(); 解决方法:play并不是jQuery的函数,而是DOM ...
- HTML5 视频规范简介
HTML5 视频规范简介 创建于 2013-02-03, 周日 00:56 作者 白建鹏 HTML 一词是“超文本标记语言”(Hyper-Text Markup Language)的缩写,是用于描 ...
- [转] Android 4.4中播放HTML5视频<video>的Bug
近期Nexus 4手机自动升级到Android4.4,本来挺好的一件事儿,结果发现自己的应用中出现一个Bug,应用中使用了Webview播放HTML5视频,代码如下: <video width= ...
- 31.JS实现控制HTML5背景音乐播放暂停
实现控制网站背景音乐的播放暂停在html5中是非常容易和简单的,仅仅几行代码即可实现.首先在网页中嵌入背景音乐,html5代码为: <script src="http://wuover ...
- 【转】Android 4.4中播放HTML5视频<video>的Bug
近期Nexus 4手机自动升级到Android4.4,本来挺好的一件事儿,结果发现自己的应用中出现一个Bug,应用中使用了Webview播放HTML5视频,代码如下: <video width= ...
- html5页面怎么播放音频和视频
html5页面怎么播放音频和视频 一.总结 一句话总结:html5 音频和视频标签:(audio And video),局限是不同浏览器对音频视频的格式支持很让人头痛 1.最基础的音频和视频标签的使用 ...
- 网页视频不能自动播放?HTML5 video报错Uncaught (in promise) DOMException解决方法
话说发哥四年前写了一个网页,如上图效果,实际网址http://pano.z01.com ,话说做好时是正常的,突然某一天,客户说你这个网站动画不见了,这是什么原因? 结果检查脚本一切正常. 其实也不是 ...
- HTML5播放暂停音乐
查看效果:http://hovertree.com/code/jquery/ueyf7gn4.htm 代码如下: <!DOCTYPE html> <html> <head ...
- html5视频全频播放
html5视频全频播放 旋转90度 对video进行缩放 修正position 效果还凑合 代码 $(media).rotate({ // angle: 90, duration: 100, anim ...
随机推荐
- poj 3468 A Simple Problem with Integers【线段树区间修改】
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 79137 ...
- Linux系统Load average负载详细解释
我们知道判断一个系统的负载可以使用top,uptime等命令去查看,它分别记录了一分钟.五分钟.以及十五分钟的系统平均负载 例如我的某台服务器: $ uptime 09:50:21 up 200 da ...
- mdk编译遇见的错误(LX4F120H),望各位指点迷津
程序如下 #define tBoolean int#define GPIO_PORTA_BASE g_pulGPIOBaseAddrs[0]#include "lib/gpio.h" ...
- jquerymobile知识点:动态Grid的绑定以及刷新
下面jquerymobile是ajax动态绑定和刷新的例子.直接上图以及代码. 下面是实例代码: //初始绑定 function GetInitBind(PageIndex, PageSize, sq ...
- FC网络学习笔记02 -网络配置方法
随着新一代飞机的综合化航电系统对通信需求的不断提高,传统的ARINC429.1553B总线的传输速率分别只有100Kbps和1Mbps,其带宽已远远不 论文联盟 http://Www.LWlm.cOm ...
- Android怎样改动app不在多任务列表中显示
在实际开发中,我们希望某些activity或者应用程序不在多任务列表中显示,即长按Home键或者多任务button键不显示近期执行的程序,我们能够在对应应用程序的AndroidManifest.xml ...
- 2014 百度之星题解 1002 - Disk Schedule
Problem Description 有非常多从磁盘读取数据的需求,包含顺序读取.随机读取.为了提高效率,须要人为安排磁盘读取.然而,在现实中,这样的做法非常复杂.我们考虑一个相对简单的场景. 磁盘 ...
- 用java读取properties文件--转
今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享. 下面直接贴出代码:java类 public class Mytest pub ...
- mysql 插入语句
mysql 插入语句 什么时候用单引号,什么时候不用? 1.先创建一个表 create table user(username varchar(255),age int,marry boolean,b ...
- 高性能爬虫为什么使用定制DNS客户端?
DNS 解析是高性能网络爬虫的瓶颈,主要是因为: 1. 由于域名服务的分布式的特性,DNS解析可能需要多次的请求转发,有时需要几秒甚至更长的时间来解析出相应的IP 地址. 2. 现有的标准库对DNS解 ...