HTML5使用js jq控制的播放 暫停

正所謂節後三天瘟!第一天上班腦子迷迷糊糊。一上來就寫一端代碼控制audio,憑藉僅存的記憶,還不錯!弄出來了!中間遇到了一點點小坑,特地拿出來曬曬,免得以後再吃虧!

任務要求:利用js或者jq控制音頻的播放,不要原生的控制器。

正所謂: js未動,html先行。 (爲了方便演示:其中MP3的資源,我利用線上的了)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<p>javascript</p>
	<input type="button" value="播放" id="play">
	<audio id="bgMusic" >
    <source src="http://cctv3.qiniudn.com/zuixingfuderen.mp3" type="audio/mp3">
    <source src="http://cctv3.qiniudn.com/zuixingfuderen.mp3" type="audio/ogg">
	</audio>
</body>
</html>

一個小建議:第一次打開,audio標籤後面加上autoplay打開網頁就自動播放了,再加上controls就會出現默認的控制器,否則頁面什麼都沒有,看上去還以爲出問題呢!確認加載無誤,就可以刪除了。

先完成最基礎的功能就是播放/暫停。利用audio.play()和audio.pause()就可以輕鬆的實現了。注意:不是stop();

接下來就是如何利用一個按鈕實習播放 暫停。像toggle一樣。這個坑讓我停留的時間有點長。先上代碼!

window.οnlοad=function(){
			var play=document.getElementById('play');
			var bgm = document.getElementById('bgMusic');
			play.onclick = function () {
			    console.log(bgm.paused);
			    if (bgm.paused) {
			        bgm.play();
			        play.value="播放";
				}else{
			        bgm.pause();
			        play.value="暫停";
				}
			}
		}

這裏主要說的就是判斷條件。我一直以爲是audio.pause屬性 結果少了一個“d” .希望大家注意一下:是:audio.paused.

還有一個就是靜音的效果。判斷的條件與設置都比較特殊,一同拋出來。

if(bgm.muted){
						bgm.muted = false;
						mute.value="外音";
					}else{
						bgm.muted = true;
						mute.value="靜音";
					}

在這裏 我放上demo的連接 大家自己去下載吧!

最後再來說一個jquery實現這樣的效果,會遇到的一個坑!

$(document).ready(function () {
			$("#toggle").click(function(){
				if($("#bgMusic").get(0).paused){
					$("#bgMusic").get(0).play()
					$("#toggle").val("play");
				}else{
					$("#bgMusic").get(0).pause();
					$("#toggle").val("stop");
				}
			})
		})

看完代碼估計大家也知道是什麼了,就是 get(0)! 這個bug的解決還是得益於stackoverflow

特意標出的三個小坑,希望幫助到大家!

還有快進 快退 進度條都沒有來得及做。我將在寫關於video標籤博客的時候,補充一下!這裏就不過多廢話了!

最後留一個坑!就是判斷播放結束。該用什麼?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章