使用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 functionsvar video = document.getElementById("Video1"); if (video.canPlayType) { // tests that we have HTML5 video support// if successful, display buttons and set up eventsdocument.getElementById("buttonbar").style.display = "block"; document.getElementById("inputField").style.display = "block";// helper functions// play videofunction vidplay(evt) {if (video.src == "") { // inital source loadgetVideo();}button = evt.target; // get the button id to swap the text based on the state if (video.paused) { // play the file, and display pause symbolvideo.play();button.textContent = "||";} else { // pause the file, and display play symbol video.pause();button.textContent = ">";}}// load video file from input fieldfunction getVideo() {var fileURL = document.getElementById("videoFile").value; // get input field if (fileURL != "") {video.src = fileURL;video.load(); // if HTML source element is useddocument.getElementById("play").click(); // start play} else {errMessage("Enter a valid video URL"); // fail silently}} // button helper functions // skip forward, backward, or restartfunction 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 exceptionerrMessage("Video content might not be loaded");}}// display an error message function errMessage(msg) {// displays an error message for 5 seconds then clears itdocument.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 exceptionsif (vol >= 0 && vol <= 1) {// if valid value, use itvideo.volume = vol;} else {// otherwise substitute a 0 or 1video.volume = (vol < 0) ? 0 : 1; }}// button events // Playdocument.getElementById("play").addEventListener("click", vidplay, false);// Restartdocument.getElementById("restart").addEventListener("click", function () {setTime(0);}, false);// Skip backward 10 secondsdocument.getElementById("rew").addEventListener("click", function () {setTime(-10);}, false);// Skip forward 10 secondsdocument.getElementById("fwd").addEventListener("click", function () {setTime(10);}, false);// set src == latest video file URLdocument.getElementById("loadVideo").addEventListener("click", getVideo, false);// fail with message video.addEventListener("error", function (err) {errMessage(err);}, true);// volume buttonsdocument.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 buttonsdocument.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 ...
随机推荐
- Linux下多任务间通信和同步-信号
Linux下多任务间通信和同步-信号 嵌入式开发交流群280352802,欢迎加入! 1.概述 信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式.信号可以直接进行用户空间进程和内核进程之间的 ...
- 一次服务器CPU占用率高的定位分析
现象: 当前项目启动一段时间,有一个服务导致CPU使用率持续超过30% 环境:Windows 7, CPU: 8核, 内存: 8g内存 定位过程: 启动项目,查看Java进程ID 查看Event P ...
- 命令 "sudo -H" 中的这个 "H" 什么作用?
脚本中使用$HOME变量 问题描述:某些同事原来写的脚本中包含如下内容. BIN_DIR=${HOME}/tools TAIR_BIN_DIR=${HOME}/tair_bin TAIR_SRC_DI ...
- storm单机版安装配置
1,install zeromq 期间可能出现:configure: error: cannot link with -luuid, install uuid-dev. 因此可以先安装 sudo ap ...
- IntelliJ IDEA 配置Jetty
jetty是google app engine 在大量使用的一款服务器软件,不过当然目前还撼动不了tomcat的地位,但是jetty相当轻量级,可以自己灵活定制 资源占用少 ,所以还是有吸引力的,接下 ...
- 遇到java.lang.OutOfMemoryError: Java heap space问题【持续跟踪中...】
昨天下午app服务端无缘无故又502错了,我打开tomcat 日志: INFO: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter DEBUG: i ...
- Java三大主流框架概述(转载)
转自:http://www.douban.com/note/320140839/ Struts.Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解 ...
- JSP&Servlet学习手册
JSP&Servlet学习手册 沙琪玛 书 目录 JSP 指令... 3 书写方式... 3 指令列表... 3 JSP 内置对象... 3 内置对象特点... 3 常用内置对象... 3 o ...
- ibatis 开发中的经验 (一)ibatis 和hibernate 在开发中的理解
这个项目的底层是用ibatis框架完毕,这几天也是都在用这个框架写代码,也有了一些简单的理解,把项目拿过来后基本的配置都已经配置好了,比方一些事务.日志控制等,在开发中主要用到的是写SQL语句以及熟悉 ...
- 使用Parse内付费服务出现的Error Domain=Parse Code=146 "The operation couldn’t be completed. (Parse error 146.)
因为开发一个应用有个内付费去广告功能,介于苹果官方提供的方法没用过,感觉有些复杂,于是选用了第三方组件Parse来解决这个问题,简单易操作: Parse简化苹果官方内付费问题,使用方法分厂简单只有两个 ...