根據html5實現的簡單的音頻播放,還是挺好的,可以借鑒,下面上代碼了
!doctype html html lang= en head meta charset= UTF-8 meta name= viewport content= width=device-width,initial-scale=1 user-scalable=0 / link rel= shortcut icon href= img/logo.png title html5 audio音頻播放 /title style *{ margin: 0; padding:0;} body{-webkit-tap-highlight-color: rgba(0,0,0,0); font-family: 微軟雅黑 } h1{ width: 100%; font-size: 1.5em; text-align: center; line-height: 3em; color:#47c9af; } #audio{ width: 100%;} #control{ width: 150px; height: 150px; line-height: 150px; text-align: center; border-radius: 200px; border:none; color:#fff; margin-top: -75px; margin-left:-75px; left:50%; top:50%; position: absolute; box-shadow: #888 0 0 8px;} .color_gray{ background: #e4e4e4} .hide{ display: none;} .show{ display: block;} .play{ background: #f06060;} .pause{ background:skyblue} /*進度條樣式*/ .progressBar{ width: 100%; height: 10px;margin: 30px auto 30px auto; position:absolute; left: 0; bottom: 35px;} .progressBar p{ position: absolute;} .progressBar .progressBac{ width: 100%; height: 10px; left: 0; top:0; background: #e4e4e4;} .progressBar .speed{width: 100%; height: 10px; left: -100%; background: #f06060; } .progressBar .drag{ width: 30px; height: 30px; left: 0; top:-10px; background: skyblue; opacity: 0.8; border-radius: 50px; box-shadow: #fff 0 0 5px;} /*時間樣式*/ #time{ width: 100%; height: 20px;position: absolute; left: 0; bottom:30px; color:#888;} .tiemDetail{ position: absolute; right:10px; top:0;} #songInfo{overflow: hidden; width: 200px; height:50px; line-height: 50px; text-align: center; color:#34495e; margin-top: -25px; margin-left:-100px; left:50%; top:70%; position: absolute;} .shareImg{ position: absolute; left: 100000px;} /style /head body script $(function() { getSong();//獲取歌曲鏈接并插入dom中function getSong() { var audio = document.getElementById( audio audio.src = http://frontman.qiniudn.com/songnotime.mp3 audio.loop = true; //歌曲循環 playCotrol(); //播放控制函數//點擊播放/暫停function clicks() { var audio = document.getElementById( audio $( #control ).click(function() { if ($( #control ).hasClass( play )) { $( #control ).addClass( pause ).removeClass( play audio.play();//開始播放 dragMove();//并且滾動條開始滑動 $( #control ).html( 暫停播放 } else { $( #control ).addClass( play ).removeClass( pause $( #control ).html( 點擊播放 audio.pause();//播放時間function timeChange(time, timePlace) {//默認獲取的時間是時間戳改成我們常見的時間格式 var timePlace = document.getElementById(timePlace); //分鐘 var minute = time / 60; var minutes = parseInt(minute); if (minutes 10) { minutes = 0 + minutes; var second = time % 60; seconds = parseInt(second); if (seconds 10) { seconds = 0 + seconds; var allTime = + minutes + + : + + seconds + timePlace.innerHTML = allTime;//播放事件監聽function playCotrol() { audio.addEventListener( loadeddata , //歌曲一經完整的加載完畢( 也可以寫成上面提到的那些事件類型) function() { $( #control ).addClass( play ).removeClass( color_gray $( #control ).html( 點擊播放 addListenTouch(); //歌曲加載之后才可以拖動進度條 var allTime = audio.duration; timeChange(allTime, allTime setInterval(function() { var currentTime = audio.currentTime; $( #time .currentTime ).html(timeChange(currentTime, currentTime )); }, 1000); clicks(); }, false); audio.addEventListener( pause , function() { //監聽暫停 $( #control ).addClass( play ).removeClass( pause $( #control ).html( 點擊播放 if (audio.currentTime == audio.duration) { audio.stop(); audio.currentTime = 0; }, false); audio.addEventListener( play , function() { //監聽暫停 $( #control ).addClass( pause ).removeClass( play $( #control ).html( 暫停播放 dragMove(); }, false); audio.addEventListener( ended , function() { alert(0) }, false)//進度條這里我用的是事件實現進度拖動 如果不太熟悉touch的可以看下我之前寫的一個小demo http://www.cnblogs.com/leinov/p/3701951.html var startX, x, aboveX = 0; //觸摸時的坐標 //滑動的距離 //設一個全局變量記錄上一次內部塊滑動的位置 //1拖動監聽touch事件function addListenTouch() { document.getElementById( drag ).addEventListener( touchstart , touchStart, false); document.getElementById( drag ).addEventListener( touchmove , touchMove, false); document.getElementById( drag ).addEventListener( touchend , touchEnd, false); var drag = document.getElementById( drag var speed = document.getElementById( speed //touchstart,touchmove,touchend事件函數 function touchStart(e) { e.preventDefault(); var touch = e.touches[0]; startX = touch.pageX; function touchMove(e) { //滑動 e.preventDefault(); var touch = e.touches[0]; x = touch.pageX - startX; //滑動的距離 //drag.style.webkitTransform = translate( + 0+ px, + y + px) //也可以用css3的方式 drag.style.left = aboveX + x + px // speed.style.left = -((window.innerWidth) - (aboveX + x)) + px function touchEnd(e) { //手指離開屏幕 e.preventDefault(); aboveX = parseInt(drag.style.left); var touch = e.touches[0]; var dragPaddingLeft = drag.style.left; var change = dragPaddingLeft.replace( px , numDragpaddingLeft = parseInt(change); var currentTime = (numDragpaddingLeft / (window.innerWidth - 30)) * audio.duration;//30是拖動圓圈的長度,減掉是為了讓歌曲結束的時候不會跑到window以外 audio.currentTime = currentTime;//3拖動的滑動條前進function dragMove() { setInterval(function() { drag.style.left = (audio.currentTime / audio.duration) * (window.innerWidth - 30) + px speed.style.left = -((window.innerWidth) - (audio.currentTime / audio.duration) * (window.innerWidth - 30)) + px }, 500); /script h1 html5 audio 音頻播放demo /h1 !--audiostart-- audio id= audio src= loop= loop autoplay= autoplay /audio !--audio End--
獨孤九賤(5)_ThinkPHP5視頻教程 ThinkPHP是國內最流行的中文PHP開發框架,也是您Web項目的最佳選擇。《VeVb.com獨孤九賤(5)-ThinkPHP5視頻教程》課程以ThinkPHP5最新版本為例,從最基本的框架常識開始,將...
Peter-Zhu 2017-05-16 12:03:57
獨孤九賤(4)_PHP視頻教程 江湖傳言:PHP是世界上最好的編程語言。真的是這樣嗎?這個梗究竟是從哪來的?學會本課程,你就會明白了。PHP 出品的PHP入門系統教學視頻,完全從初學者的角度出發,絕不玩虛的,一切以實用、有用...
Peter-Zhu 2017-03-20 22:47:17
獨孤九賤(1)_HTML5視頻教程 《VeVb.com原創html5視頻教程》課程特色:php 原創幽默段子系列課程,以惡搞,段子為主題風格的php視頻教程!輕松的教學風格,簡短的教學模式,讓同學們在不知不覺中,學會了HTML知識。...
Peter-Zhu 2017-03-13 10:15:11
ThinkPHP5實戰之[教學管理系統] 本套教程,以一個真實的學校教學管理系統為案例,手把手教會您如何在一張白紙上,從零開始,一步一步的用ThinkPHP5框架快速開發出一個商業項目。
Peter-Zhu 2017-07-24 16:48:56
PHP入門視頻教程之一周學會PHP 所有計算機語言的學習都要從基礎開始,《PHP入門視頻教程之一周學會PHP》不僅是PHP的基礎部分更主要的是PHP語言的核心技術,是學習PHP必須掌握的內容,任何PHP項目的實現都離不開這部分的內容,通...
其它編程語言 鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
|
新聞熱點
疑難解答