之前已经介绍过了HTML5中媒体元素的相关小概念,和一些事件方法。光有一些理论基础,没有实践实例是不能充分理解的,更不太可能靠小概念来进行实际操作的。所以今天为大家奉上一个有关模拟音乐播放器小例子。希望大家通过这个下例子能够更好的理解和运用HTML5中的媒体元素。
HTML代码
<p class="player"> <p class="player-block bg"> <p class="controls"> <a title="播放" id="play" class="play mode-bg" href="#"></a> <a title="暂停" id="pause" class="pause mode-bg" href="#" style="display: none;"></a> </p> <p class="seprator bg"></p> <p class="info"> <p id="song-name" class="song-name">欢迎使用音乐网播放器!</p> <p id="totaltime" class="time">00:00</p> <p class="s">/</p> <p id="playtime" class="time1">00:00</p> <p id="tracks" class="tracks bg"> <p class="download-bar bg" style="width: 0%;"> <p class="l bg">l</p> <p class="r bg">r</p> </p> <p id="seek-bar" class="seek-bar bg" style="width: 0%;"> <p class="l bg"></p> <p class="r bg"></p> <p id="point" class="point bg"></p> </p> </p> </p> <p class="seprator bg"></p> <p class="volumn"> <a id="mute" class="mute mode-bg" style="display: block;"></a> <a id="unmute" class="unmute mode-bg" style="display: none;"></a> <p class="line bg"> <p id="volumn" class="tracks"> <p id="volumnBar"class="volumn-bar bg" style="width: 100%;"> <p class="l bg"></p> <p class="r bg"></p> <p id="volPoint" class="point bg"></p> </p> </p> </p> </p> </p> <p class="player-r bg"></p> </p> <audio id="audio"> <source id="s1" src="TheOldBoy.mp3"></source> <source id="s2" src="TheOldBoy.ogg"></source> </audio>
CSS代码
.player {height: 35px;margin-left: auto;margin-right: auto;width: 980px;} .bg {background: url("../images/player.png") repeat;} .mode-bg {background: url("../images/mode.gif") repeat;} .player-block {background:#000;display: block;float: left;height: 35px;width: 820px;} .player-block .controls {float: left;height: 35px;padding-left: 5px;padding-right: 5px;width: auto;} .player-block .controls a {display: inline;margin-left: 5px;} .player-block .controls a.play,.player-block .controls a.pause {display: block;float: left;height: 30px;margin-top: 4px;width: 30px;} .player-block .controls a.play {background-position: -130px -40px;} .player-block .controls a.pause {background-position: -171px -40px;} .player-block .info {color: #FFF;width:620px;float: left;height: 26px;padding: 2px 5px;} .player-block .info .song-name {float: left;height: 20px;overflow: hidden;white-space: nowrap;} .player-block .info .time {float: left;height: 15px;line-height: 15px;margin-top: 2px;text-align: right;} .player-block .info .s {float:right;height: 15px;line-height: 15px;margin-top: 2px;text-align: right;width: 5px;} .player-block .info .time,.player-block .info .time1 {float:right;;height: 15px;line-height: 15px;margin-top: 2px;text-align: right;} .player-block .info .tracks {background-position: 0 -198px;height: 7px;margin-top: 20px;padding-left: 3px;position: relative;width: 290px;} .player-block .info .tracks .seek-bar {background-position: 0 -271px;background-repeat: repeat-x;display: inline;height: 7px; left: 0;margin-left: 2px;min-width: 2px;position: absolute;top: 0;width: 10%;z-index: 1;} .seek-bar .l,..seek-bar .r {display: inline;float: left;font-size: 0;height: 7px;} .player-block .info .tracks .seek-bar .l {background-position: 0 -262px;margin-top: -1px;position: relative;margin-left: -3px;width: 4px;} .player-block .info .tracks .seek-bar .r {background-position: -1px -279px;margin-right: -3px;margin-top: 0;position: absolute;right: 0;width: 3px;} .player-block .info .tracks .seek-bar .point {background-position: -146px -12px;height: 13px;margin-right: -5px;margin-top: -4px;position: absolute; right: 0;width: 13px;} .player-block .volumn {color: #fff;float: left;height: 26px;padding: 2px 5px;width: 110px;} .player-block .volumn .mute {background-position: -287px -2px;display: none;float: left;height: 17px;margin-top: 10px;width: 20px;} .player-block .volumn .unmute {background-position: -287px -22px;float: left;height: 17px;margin-top: 10px;width: 20px;} .player-block .volumn .line {background-position: 0 -107px;display: inline;float: left;margin-left: 10px;margin-top: 11px;width: 80px;} .player-block .volumn .tracks {float: left;height: 10px;padding-left: 6px;position: relative;width: 90%;} .player-block .volumn .tracks .volumn-bar {background-position: 0 -85px;background-repeat: repeat-x;display: inline;height: 10px;left: 0; margin-left: 2px;min-width: 2px;position: absolute;top: 0;width: 40%;} .volumn-bar .l,.volumn-bar .r {font-size: 0;height: 10px;margin-right: -3px;margin-top: 0;display: inline;} .player-block .volumn .tracks .volumn-bar .l {background-position: 0 -75px;float: left;position: relative;width: 4px;} .player-block .volumn .tracks .volumn-bar .r {background-position: -1px -95px;float: right;position: absolute;right: 0;width: 3px;} .player-block .volumn .tracks .volumn-bar .point {background-position: -122px -12px;height: 15px;margin-right: -5px; margin-top: -2px;position: absolute;right: 0;width: 15px;}
JavaScript代码
window.onload=function(){ var $songName = v("song-name"); var audio = v("audio"); var oSrc=audio.currentSrc; var currentTime=audio.currentTime; var duration=audio.duration; var $time = v("totaltime"); var $time1 = v("playtime"); var $seekBar = v("seek-bar"); var $point = v("point"); var $tracks = v("tracks"); var $mute = v("mute"); var $unmute = v("unmute"); var $play = v("play"); var $pause = v("pause"); var $volPoint = v("volPoint"); var $volumn = v("volumn"); var $volumnBar = v("volumnBar"); $songName.innerHTML = decodeURI(oSrc); function toShow(){ $time1.innerHTML = timeChange(audio.currentTime); var scale = audio.currentTime/audio.duration; $seekBar.style.width = Math.floor(scale * ($tracks.offsetWidth - $point.offsetWidth)) + 'px'; } //总时间 function timeChange(iAll){ iAll = Math.floor(iAll); var mintus = toZero(parseInt(iAll%3600/60)); var sends = toZero(parseInt(iAll%60)); return mintus + ":" + sends; } function toZero(num){ if(num<10){ return '0' + num; } else{ return '' + num; } } //一开始总时间显示 $time.innerHTML = timeChange(audio.duration); //暂停播放 $pause.onclick = function() { $pause.style.display = "none"; $play.style.display = "block"; audio.pause(); }; $play.onclick = function() { $play.style.display = "none"; $pause.style.display = "block"; toShow() setInterval(toShow,1000) audio.play(); }; //静音 $mute.onclick = function(){ $unmute.style.display='block'; $mute.style.display='none'; v('audio').muted = true; $volumnBar.style.width = 7 + "px" }; //取消静音 $unmute.onclick = function(){ $mute.style.display='block'; $unmute.style.display='none'; v('audio').muted = false; }; //声音 $volPoint.onmousedown = function(ev){ var ev = ev || window.event; disX2 = ev.clientX - $volPoint.offsetLeft - 5; document.onmousemove = function(ev){ var ev = ev || window.event; var L = ev.clientX - disX2; if(L<0){ L = 0; } else if(L>$volumn.offsetWidth - $volPoint.offsetWidth){ L = $volumn.offsetWidth - $volPoint.offsetWidth; } $volumnBar.style.width = L+7 + 'px'; var scale = L/($volumn.offsetWidth - $volPoint.offsetWidth); v('audio').volume = scale; }; document.onmouseup = function(){ document.onmousemove = null; document.onmouseup = null; }; return false; }; //进度 $point.onmousedown = function(ev){ var ev = ev || window.event; disX2 = ev.clientX - $point.offsetLeft - 5; document.onmousemove = function(ev){ var ev = ev || window.event; var L = ev.clientX - disX2; if(L<0){ L = 0; } else if(L>$tracks.offsetWidth - $point.offsetWidth){ L = $tracks.offsetWidth - $point.offsetWidth; } $seekBar.style.width = L + 'px'; var scale = L/($tracks.offsetWidth - $point.offsetWidth); audio.currentTime = scale * audio.duration; $time1.innerHTML = timeChange(audio.currentTime); }; document.onmouseup = function(){ document.onmousemove = null; document.onmouseup = null; $time1.innerHTML = timeChange(audio.currentTime); audio.play(); }; return false; }; } //获取id function v(idName){ return document.getElementById(idName); } //获取类名 function c(sClass){ var result = []; var aEle = document.getElementsByTagName('*'); var re = new RegExp('\\b'+sClass+'\\b','i'); //\就是转义 for(var i=0;i<aEle.length;i++){ if(re.test(aEle[i].className)){ result.push(aEle[i]); } } return result; }
以上就是HTML5实战与剖析之媒体元素(5、音频实例)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

H5帶來了多項新功能和能力,極大提升了網頁的互動性和開發效率。 1.語義化標籤如、增強了SEO。 2.多媒體支持通過和標籤簡化了音視頻播放。 3.Canvas繪圖提供了動態圖形繪製工具。 4.本地存儲通過localStorage和sessionStorage簡化了數據存儲。 5.地理位置API便於開發基於位置的服務。

HTML5帶來了五個關鍵改進:1.語義化標籤提升了代碼清晰度和SEO效果;2.多媒體支持簡化了視頻和音頻嵌入;3.表單增強簡化了驗證;4.離線與本地存儲提高了用戶體驗;5.畫布與圖形功能增強了網頁的可視化效果。

HTML5的核心特性包括語義化標籤、多媒體支持、離線存儲與本地存儲、表單增強。 1.語義化標籤如、等,提升代碼可讀性和SEO效果。 2.和標籤簡化多媒體嵌入。 3.離線存儲和本地存儲如ApplicationCache和LocalStorage,支持無網絡運行和數據存儲。 4.表單增強引入新輸入類型和驗證屬性,簡化處理和驗證。

H5提供了多種新特性和功能,極大地增強了前端開發的能力。 1.多媒體支持:通過和元素嵌入媒體,無需插件。 2.畫布(Canvas):使用元素動態渲染2D圖形和動畫。 3.本地存儲:通過localStorage和sessionStorage實現數據持久化存儲,提升用戶體驗。

H5和HTML5是不同的概念:HTML5是HTML的一個版本,包含新元素和API;H5是基於HTML5的移動應用開發框架。 HTML5通過瀏覽器解析和渲染代碼,H5應用則需要容器運行並通過JavaScript與原生代碼交互。

HTML5的關鍵元素包括、、、、、等,用於構建現代網頁。 1.定義頭部內容,2.用於導航鏈接,3.表示獨立文章內容,4.組織頁面內容,5.展示側邊欄內容,6.定義頁腳,這些元素增強了網頁的結構和功能性。

HTML5和H5沒有區別,H5是HTML5的簡稱。 1.HTML5是HTML的第五個版本,增強了網頁的多媒體和交互功能。 2.H5常用於指代基於HTML5的移動網頁或應用,適用於各種移動設備。

HTML5是超文本標記語言的最新版本,由W3C標準化。 HTML5引入了新的語義化標籤、多媒體支持和表單增強,提升了網頁結構、用戶體驗和SEO效果。 HTML5引入了新的語義化標籤,如、、、等,使網頁結構更清晰,SEO效果更好。 HTML5支持多媒體元素和,無需第三方插件,提升了用戶體驗和加載速度。 HTML5增強了表單功能,引入了新的輸入類型如、等,提高了用戶體驗和表單驗證效率。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具