校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > HTML5制作酷炫音頻播放器插件圖文教程

HTML5制作酷炫音頻播放器插件圖文教程

熱門標簽:南通數據外呼系統推廣 地圖標注位置能賺錢嗎 外呼線穩定線路 申請400電話流程簡介 呼和浩特外呼電銷系統排名 外呼系統電話怎么投訴 邢臺縣地圖標注app 阜陽企業外呼系統 pageadm實現地圖標注

上圖便是這個音頻播放器的UI界面圖,里面還隱藏了一個歌曲的播放列表。整個播放器的UI除了大背景的人像圖和歌曲的星星評分使用了圖片其他全部由CSS和font-face繪制而成,看上去有難度的地方就只有CD和打碟器的制作了,在歌曲播放時CD和打碟器都是具有動畫交互效果的,這個在后面的部分會講解到。點擊播放器的CD可以打開播放列表噢~

因為這一期的教程主要是為了展示Html5新增的<audio>標簽和audio元素的Dom API的使用,所以播放器UI的繪制在這里就不詳細解釋了,有疑問的可以自行查看案例的CSS文件的注釋或者在下方留言。

主要功能:

一、播放、暫停、上一首、下一首、音量增減

二、點擊CD可以打開和關閉播放列表

三、可以拖動本地音樂文件到播放器進行播放

Html結構


復制代碼
代碼如下:

<div id="myAudio" style="margin:0 auto;">
<audio>
<source title="王若琳 - Wild World.mp3" src="<a />
<source title="韋禮安 - 還是會.mp3" src="<a />
<source title="王若琳 - Lost in paradise.mp3" src="<a />
</audio>
<div class="music_info clearfix">
<div class="cd_holder"><span class="stick"></span><div class="cd"></div></div>
<div class="meta_data">
<span class="title"></span>
<div class="rating">
<div class="starbar">
<ul class="current-rating" data-score="85">
<li class="star5"></li>
<li class="star4"></li>
<li class="star3"></li>
<li class="star2"></li>
<li class="star1"></li>
</ul>
</div>
</div>
<div class="volume_control">
<a class="decrease">a</a>
<span class="base_bar">
<span class="progress_bar"></span>
<a class="slider"></a>
</span>
<a class="increase">b</a>
</div>
</div>
</div>
<ul class="music_list"></ul>
<div class="controls">
<div class="play_controls">
<a class="btn_previous">e</a>
<a class="btn_play">c</a>
<a class="btn_next">d</a>
</div>
<div class="time_line">
<span class="passed_time">0:00</span>
<span class="base_bar">
<span class="progress_bar"></span>
</span>
<span class="total_time">0:00</span>
</div>
</div>
</div>

audio標簽

在上面的結構中我們可以發現這個html5新增的audio標簽,它具有一個controls屬性,顧名思義它是播放器的控制器,controls 屬性規定瀏覽器為音頻提供播放控件,例如在chrome瀏覽器下的audio標簽中設置該屬性,播放器就會以如下的形式出現,如果不設置該屬性,則會是空白一片


復制代碼
代碼如下:
<audio controls src="xxx.mp3"></audio>

但由于在不同瀏覽器下的對audio標簽渲染效果不一,這種簡易的方法并不適合在跨瀏覽器下的使用,并且瀏覽器默認的播放器控件所提供的功能實在是太少了。。所以我們一般通過不設置該屬性的方法來隱藏瀏覽器的默認播放控件,并且手工加入額外的標簽和樣式來定制播放器的UI界面。

播放控制

在播放器的UI界面繪制完成后,首先我們需要做的是為播放、上一首、下一首這三個主要的控制按鈕添加對應的事件監聽。


復制代碼
代碼如下:

var myAudio = $("#myAudio audio")[0];
var $sourceList = $("#myAudio source");
var currentSrcIndex = 0;
var currentSr = "";


復制代碼
代碼如下:

$(".btn_play").click(function(){
if (myAudio.paused) {
myAudio.play();
} else {
myAudio.pause();
}
});
$(".btn_next").click(function(){
++currentSrcIndex > $sourceList.length - 1 && (currentSrcIndex = 0);
currentSrc = $("#myAudio source").eq(currentSrcIndex).prop("src");
myAudio.src = currentSrc;
myAudio.play();
});
$(".btn_previous").click(function(){
--currentSrcIndex < 0 && (currentSrcIndex = 0);
currentSrc = $("#myAudio source").eq(currentSrcIndex).prop("src");
myAudio.src = currentSrc;
myAudio.play();
});

上述的按鈕點擊的事件監聽中,我們通過調用原始的audio元素的play()和pause()方法來控制音頻的播放和暫停。另外audio元素提供了currentSrc屬性,該屬性表示當前播放文件的文件源,我們通過設置該屬性來控制當前播放的歌曲曲目。

音量控制

接下來我們來對音量條兩邊的兩個小喇叭添加事件監聽,使得通過點擊左右兩個小喇叭可以減小和增加當前播放的音量。要設置播放器的音量,我們可以調用audio元素中所提供的volume屬性。volume值最大為1,最小為0,在這里我們通過每次點擊喇叭增減0.1的音量來實現音量的控制。當然你也可以使用別的值。但要注意的是javascript語言不能對小數提供精準的控制,所以每次減少0.1的音量時實際上減少的音量是稍微地大于0.1的,這導致當連續點擊9次音量減少的按鈕時剩下0.09xxxx的音量,然后你會發現播放器怎么無法靜音了。。。當然這個問題是很容易解決的(如下所示),只是稍作提醒。


復制代碼
代碼如下:

$(".volume_control .decrease").click(function() {
var volume = myAudio.volume - 0.1;
volume < 0 && (volume = 0);
myAudio.changeVolumeTo(volume);
});
$(".volume_control .increase").click(function() {
var volume = myAudio.volume + 0.1;
volume > 1 && (volume = 1);
myAudio.changeVolumeTo(volume);
});

另外我們還需要實現使用滑動器或者點擊音量條某一位置來調控音量的功能,有了上面的基礎,這個就容易完成了。首先我們來看看點擊音量條某一位置來調控音量的功能:點擊音量條的某一位置,計算該由音量條的起點到該位置的長度值,再用該值除以總的音量條長度(在這里是100)得到百分比值,再用該百分比值乘以最大音量值1得到所要跳躍到的音量值,再賦值給volume。通過滑動器來調控音量的方法實現也與此類似,主要是要懂得如何計算滑動器在音量條的位置值。在此就不做詳細解釋,有問題可以下方留言。


復制代碼
代碼如下:

$(".volume_control .base_bar").mousedown(function(ev){
var posX = ev.clientX;
var targetLeft = $(this).offset().left;
var volume = (posX - targetLeft)/100;
volume > 1 && (volume = 1);
volume < 0 && (volume = 0);
myAudio.changeVolumeTo(volume);
});
$(".volume_control .slider").mousedown(starDrag = function(ev) {
ev.preventDefault();
var origLeft = $(this).position().left; /*滑塊初始位置*/
var origX = ev.clientX; /*鼠標初始位置*/
var target = this;
var progress_bar = $(".volume_control .progress_bar")[0];
$(document).mousemove(doDrag = function(ev){
ev.preventDefault();
var moveX = ev.clientX - origX; /*計算鼠標移動的距離*/
var curLeft = origLeft + moveX; /*用鼠標移動的距離表示滑塊的移動距離*/
(curLeft < -7) && (curLeft = -7);
(curLeft > 93) && (curLeft = 93);
target.style.left = curLeft + "px";
progress_bar.style.width = curLeft + 7 + "%";
myAudio.changeVolumeTo((curLeft + 7)/100);
});
$(document).mouseup(stopDrag = function(){
$(document).unbind("mousemove",doDrag);
$(document).unbind("mouseup",stopDrag);
});
});

時間控制

好了,現在播放器已經基本能用了,但我們還希望能夠直接跳過音頻的一部分到特定的時間點。那么要怎么實現呢??!制定標準的委員們也不是傻子,這種常用的功能是不會有所疏漏的拉~所以趕緊翻翻API吧,你會發現audio元素提供了一個名為currentTime的屬性,非常簡明易懂的名稱(其實大多屬性都是很好理解的),設置該屬性可以設置當前播放的時間點。

在這里,我們還需要使用audio的另一個屬性duration,該屬性指的是當前播放文件的總時間長度。因此根據音量控制的實現,我們可以這樣做:

一、點擊進度條的某一位置,計算該由進度條的起點到該位置的長度占總進度條長度的百分比值(例如點擊進度條的正中間位置,則進度條的起點到該位置的長度占總進度條長度的50%),記為percentage。

二、然后用percentage乘以文件的總時間長度duration就得到了你想要跳躍到的時間點的值,再把該值賦給currentTime即完成了所要實現的功能。


復制代碼
代碼如下:

$(".time_line .base_bar").mousedown(function(ev){
var posX = ev.clientX;
var targetLeft = $(this).offset().left;
var percentage = (posX - targetLeft)/140 * 100;
myAudio.currentTime = myAudio.duration * percentage / 100;
});

到這里,播放器已經基本成型了。剩下一些無關痛癢(其實對我來說才是最重要的哈哈)的UI交互實現,如果大家有興趣的話就到源碼中查看吧,有問題可以在下方評論留言,希望能多多交流和學習。

標簽:德州 鶴崗 內蒙古 蚌埠 黃山 辛集 撫順 楊凌

巨人網絡通訊聲明:本文標題《HTML5制作酷炫音頻播放器插件圖文教程》,本文關鍵詞  HTML5,制作,酷炫,音頻,播放器,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5制作酷炫音頻播放器插件圖文教程》相關的同類信息!
  • 本頁收集關于HTML5制作酷炫音頻播放器插件圖文教程的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美影院一区二区三区| 国产精品99久久久久久久女警| 国产日产欧美一区| 亚洲欧美偷拍三级| 欧美无乱码久久久免费午夜一区 | jlzzjlzz亚洲日本少妇| 国产成a人无v码亚洲福利| 国产一区二区免费视频| 成人午夜免费视频| 欧美色爱综合网| 6080国产精品一区二区| 亚洲美女一区二区三区| 免费欧美在线视频| 欧美另类一区二区三区| 日韩一区二区三区电影| 综合在线观看色| 日本特黄久久久高潮| 欧美一区二区三区免费观看视频| 依依成人综合视频| 免费一级欧美片在线观看| 91美女视频网站| 欧美一区二区三区的| 亚洲综合精品自拍| 麻豆成人av在线| 宅男噜噜噜66一区二区66| 日韩一区二区三区精品视频| 国产精品色在线| 国产麻豆视频精品| 一本久久a久久精品亚洲| 蜜桃精品在线观看| 99久久久久久| 亚洲精品高清在线观看| 青青草国产成人av片免费| 国产精品国产三级国产aⅴ原创| 一区二区三区在线免费播放| 国产一区福利在线| 国产色综合一区| 午夜av区久久| 欧美在线你懂得| 久久先锋影音av| 中文字幕av不卡| 免费精品视频最新在线| 色综合久久88色综合天天6 | 久久 天天综合| 欧美性xxxxxxxx| 亚洲精品成人精品456| 国产精品一区免费视频| 91免费视频观看| 亚洲一区二区高清| 成人午夜电影小说| 亚洲综合久久av| 97久久精品人人澡人人爽| 亚洲精品视频免费看| 99re66热这里只有精品3直播| 亚洲精品在线观| 国产精品 日产精品 欧美精品| 日韩一区二区三区电影在线观看 | 亚洲视频一二三| 在线观看视频91| 亚洲啪啪综合av一区二区三区| 欧美在线视频全部完| 亚洲欧美经典视频| 肉丝袜脚交视频一区二区| 久久精品国产在热久久| 日韩精品专区在线影院重磅| 福利一区二区在线观看| 久久精品视频在线免费观看| 不卡的电视剧免费网站有什么| 欧美激情综合在线| 国产尤物一区二区| 亚洲第一会所有码转帖| 日本高清不卡在线观看| 寂寞少妇一区二区三区| 久久综合九色欧美综合狠狠| 欧美性受极品xxxx喷水| 亚洲精品中文字幕在线观看| 欧美成人精品高清在线播放 | 国产乱妇无码大片在线观看| 精品国产伦一区二区三区观看方式 | 国产综合成人久久大片91| 91精品欧美一区二区三区综合在| 久久丁香综合五月国产三级网站| 精品久久久久99| 美女在线观看视频一区二区| 亚洲欧美日韩精品久久久久| 国产成人综合在线| 日韩av电影免费观看高清完整版 | 亚洲已满18点击进入久久| 91性感美女视频| 亚洲午夜久久久| 欧美一区二视频| 91视频精品在这里| 欧美中文字幕久久| a亚洲天堂av| 丝袜美腿一区二区三区| **性色生活片久久毛片| 欧美午夜精品免费| 五月婷婷久久综合| 亚洲精品在线三区| 色婷婷综合久久久中文一区二区| 久久综合成人精品亚洲另类欧美 | 久久99精品久久久| 天堂va蜜桃一区二区三区漫画版| 国产精品久久久久久亚洲毛片| 欧美亚洲禁片免费| 免费人成精品欧美精品| 亚洲男人电影天堂| 高清视频一区二区| 精品在线你懂的| 综合婷婷亚洲小说| 国产精品国产自产拍高清av王其| 色噜噜夜夜夜综合网| av在线一区二区三区| **欧美大码日韩| 日韩美女久久久| 成人在线视频一区二区| 成人av资源站| 亚洲成人免费视| 亚洲一级二级在线| 亚洲国产电影在线观看| 26uuu国产在线精品一区二区| 欧美性色黄大片| 在线亚洲免费视频| 成人免费高清视频| 国产精品入口麻豆九色| 日韩一区二区在线免费观看| 成人国产一区二区三区精品| 国产激情一区二区三区四区| 午夜免费久久看| 久久国产夜色精品鲁鲁99| 奇米一区二区三区av| 欧美日韩国产小视频在线观看| 波多野结衣在线一区| 色8久久人人97超碰香蕉987| 国产精品夜夜嗨| jizzjizzjizz欧美| 国产福利精品一区二区| 国产黄人亚洲片| 极品少妇一区二区三区精品视频| 欧美精品少妇一区二区三区| 日韩欧美一区在线观看| 欧美猛男超大videosgay| 精品国精品国产| 91精品国产美女浴室洗澡无遮挡| 久久久亚洲高清| 97aⅴ精品视频一二三区| 欧美在线小视频| 91亚洲精品乱码久久久久久蜜桃| 欧美日韩精品欧美日韩精品一 | 亚洲欧美日韩精品久久久久| 国产精品乱人伦| 中文一区二区在线观看| 久久久99精品久久| 亚洲图片欧美一区| 亚洲色图另类专区| 亚洲欧美日韩中文播放 | 精品影院一区二区久久久| 香蕉加勒比综合久久| 精品国产精品一区二区夜夜嗨| 日韩伦理免费电影| 综合婷婷亚洲小说| 国产毛片精品一区| 国产91露脸合集magnet| 91精品国产综合久久久久久久久久| 欧美精品日韩综合在线| 久久久久久久久免费| aaa欧美色吧激情视频| 4438x亚洲最大成人网| 2020国产精品| 亚洲成人av中文| 精品在线视频一区| 99精品久久免费看蜜臀剧情介绍| 高清视频一区二区| 久久精品国产亚洲一区二区三区| 激情欧美日韩一区二区| 国产成人av一区二区| 成人动漫视频在线| 日本韩国一区二区三区视频| 国产性色一区二区| 亚洲欧美另类久久久精品2019| 国产福利不卡视频| 99精品视频在线观看免费| 日韩一区国产二区欧美三区| 精品久久国产老人久久综合| 日本人妖一区二区| 国产精品白丝av| 精品国产露脸精彩对白| 亚洲美女淫视频| 91在线视频在线| 精品国产伦一区二区三区观看体验 | 中文幕一区二区三区久久蜜桃| 日本欧美在线看| 成人性生交大片免费看中文| 欧美日韩免费电影| 欧美日韩成人在线| 亚洲福利一区二区三区| 亚洲大片在线观看| 欧美性一级生活| 久久精品视频一区二区三区| 国产一区999|