您好,欢迎访问一九零五行业门户网

使用jQuery控制HTML5视频播放/暂停

我尝试用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中播放视频的方法:
try this page in safari 4! or you can download the video instead.
自动播放:
<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> <p 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> </p>
下面是一个比较完整的例子:
<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> <p 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> </p> <br/> <p 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> </p> <p title="error message area" id="errormsg" style="color:red;"></p> </body> </html>
其它类似信息

推荐信息