国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > HTML5 > 正文

HTML5自定義mp3播放器源碼

2024-09-05 07:23:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

audio對(duì)象

src兼容.ogg .wav .mp3

<audio controls src='data/imooc.wav'></audio>

width autoplay loop muted靜音

<audio controls src='data/imooc.wav' autoplay loop width='500' height='500' muted></audio>

播放play()

 var myAudio = new Audio();        myAudio.src = 'data/imooc.wav';        myAudio.play();        btn.onclick = function(){            myAudio.play();        };

暫停pause()

pauseNode.onclick = function(){                myAudio.pause();            };

當(dāng)前播放的時(shí)間currentTime

音頻總時(shí)長(zhǎng)duration

   //返回音頻的總長(zhǎng)度            myAudio.addEventListener('canplay',function(){                durationNode.innerHTML = myAudio.duration;            });            //更新當(dāng)前播放的時(shí)間            setInterval(function(){                currentNode.innerHTML = myAudio.currentTime;            },100);

音頻源currentSrc

var myAudio = new Audio();        myAudio.src = 'data/imooc.mp3';        console.log(myAudio.currentSrc);

loop循環(huán)

myAudio.loop = true;

音頻播放結(jié)束ended

myAudio.addEventListener('ended',function(){            console.log('音頻播放結(jié)束');            console.log(myAudio.ended)        });

重新加載

 

 loadBtn.onclick = function(){            myAudio.load();        };

跳轉(zhuǎn)到新的播放位置seeked / seeking

 myAudio.addEventListener('seeked',function(){            console.log('seeked');        });        myAudio.addEventListener('seeking',function(){            console.log('seeking');            sekingNum++;            seekingNum.innerHTML = sekingNum;        });

playbackRate設(shè)置當(dāng)前播放速度

 

   myAudio.playbackRate = '15';        console.log(myAudio.playbackRate)

全屏requestFullScreen

 btnScreen.onclick = function(){            myAudio.webkitRequestFullScreen();        }

loop 循環(huán)

 

 myAudio.loop = true;

volumechange音量改變

 

  myAudio.addEventListener('volumechange',function(){            console.log('音頻的聲音改變了')        });

timeupdate音頻正在播放狀態(tài)

 myAudio.addEventListener('timeupdate',function(){            console.log('音頻正在播放中...')        })

自定義mp3播放器

放圖

<!doctype html> <html> <head>     <meta charset="utf-8">     <title></title>     <style type="text/css">*{margin: 0;padding: 0;list-style: none;}        .outerNode{width: 505px;height: 406px;position: absolute;left: 50%;top: 50%;margin: -204px 0 0 -253.5px;border: 1px solid #a6a18d;border-radius:8px;box-shadow: 0 0 16px #a6a18d; }.innerNode{width: 503px;height: 405px;border-top:1px solid #e1d1b9;border-left:1px solid #ceccbf;border-radius: 8px;overflow: hidden;border-right:1px solid #ceccbf;   }.topNode{width: 100%;height: 198px;border-bottom: 1px solid #787463;background: url(music/pic/fmt01.jpg) center center;background-size:cover; transition:.7s;position: relative;}.lineNode{    width: 100%;height: 46px;border-top: 1px solid #f9f7ee;border-bottom: 1px solid #a29d8a;background: url(musicimage/linebg.jpg) repeat-x; }.progressNode{width: 440px;height: 18px;float: left;margin:13px 0 0 28px;background: url(musicimage/progressbg.jpg) repeat-x;position: relative; }.progressNode .progressleft{    width: 7px;height: 100%;position: absolute;left: 0;    background: url(musicimage/leftNode.jpg);}.progressNode .progressright{    width: 7px;height: 100%;position: absolute;right: 0;    background: url(musicimage/rightNode.jpg);}.bottomNode{    width: 100%;height: 157px;border-top: 1px solid #a29d8a;    background: url(musicimage/bottombg.jpg) repeat-x;position: relative;}.lastNode{width: 75px;height: 74px;position: absolute;background: url(musicimage/lastBg.png) no-repeat;left: 118px;top: 39px;cursor: pointer;}.playNode{width: 95px;height: 94px;position: absolute;background: url(musicimage/playNode.png) no-repeat;left: 202px;top: 29px;cursor: pointer;}.nextNode{width: 75px;height: 74px;background: url(musicimage/rightbg.png) no-repeat;position: absolute;left: 306px;top: 39px;cursor: pointer;}.volumeNode{width: 37px;height: 32px;background: url(musicimage/volume.png) no-repeat; position: absolute;right: 43px;top: 58px;cursor: pointer;}.no_volumeNode{width: 37px;height: 32px;background: url(musicimage/no_volume.png) no-repeat; position: absolute;right: 43px;top: 58px;cursor: pointer;}.trueLine{position: absolute;left: 3px;top: 2px;height: 12px;width: 0%;    background: url(musicimage/green_bg.png) repeat-x;border-radius: 6px;     border-right: 1px solid #787463;}.musicName{color: white;position: absolute;bottom: 2px;left: 5px;}    </style></head><body>    <!-- outerNode 最外層的元素 -->    <div class='outerNode'>        <!-- innerNode 內(nèi)層元素 -->        <div class='innerNode'>            <!-- topNode 封面圖元素 -->            <div class='topNode'>                <!-- 音樂(lè)名稱 -->                <div class='musicName'></div>            </div>            <!-- lineNode 進(jìn)度條元素 -->            <div class='lineNode'>                <!-- 進(jìn)度條-->                <div class='progressNode'>                    <div class='progressleft'></div>                    <div class='progressright'></div>                    <!-- 真正的進(jìn)度條 -->                    <div class='trueLine'></div>                </div>            </div>            <!-- bottomNode 空間元素 -->            <div class='bottomNode'>                <!-- lastNode 上一曲的按鈕-->                <div class='lastNode'></div>                <!-- playNode 播放暫停的按鈕 -->                <div class='playNode'></div>                <!-- nextNode 下一曲的按鈕 -->                <div class='nextNode'></div>                <!-- volumeNode 靜音或非靜音的按鈕-->                <div class='volumeNode'></div>            </div>        </div>    </div>    <script type="text/javascript">        //播放暫停的按鈕        //playBln 控制播放暫停的布爾值        var playBtn = document.querySelector('.playNode'),        playBln = true,        //控制聲音的按鈕        //volumeBln 控制聲音的布爾值        volumeNode = document.querySelector('.volumeNode'),        volumeBln = true,        //進(jìn)度條的選擇器        trueLine = document.querySelector('.trueLine'),        //進(jìn)度條外層的元素        progressNode = document.querySelector('.progressNode'),        //最外層元素        outerNode = document.querySelector('.outerNode'),        //選擇一下封面背景        topNode = document.querySelector('.topNode'),        //下一首歌的按鈕        nextNode = document.querySelector('.nextNode'),        //上一首歌的按鈕        lastNode = document.querySelector('.lastNode'),        //音樂(lè)名稱        musicName = document.querySelector('.musicName');        //給播放器添加js        //創(chuàng)建audio對(duì)象        var myAudio = new Audio();        //給audio對(duì)象一個(gè) src        //所有的數(shù)據(jù)存在數(shù)組里面        let allMusic = [{            'MusicSrc':'music/mus/AcousticGuitar1.mp3',            'MusicPic':'music/pic/fmt01.jpg',            'MusicName':'AcousticGuitar1'        },{            'MusicSrc':'music/mus/AmazingGrace.mp3',            'MusicPic':'music/pic/fmt02.png',            'MusicName':'AmazingGrace'        },{            'MusicSrc':'music/mus/FeelsGood2B.mp3',            'MusicPic':'music/pic/fmt03.jpg',            'MusicName':'FeelsGood2B'        },{            'MusicSrc':'music/mus/FunBusyIntro.mp3',            'MusicPic':'music/pic/fmt04.jpg',            'MusicName':'FunBusyIntro'        },{            'MusicSrc':'music/mus/GreenDaze.mp3',            'MusicPic':'music/pic/fmt05.jpg',            'MusicName':'GreenDaze'        },{            'MusicSrc':'music/mus/Limosine.mp3',            'MusicPic':'music/pic/fmt06.jpg',            'MusicName':'Limosine'        }],Index = 0;        myAudio.src = allMusic[Index].MusicSrc;        //給封面賦值        topNode.style.backgroundImage = 'url('+allMusic[Index].MusicPic+')';        //給音樂(lè)名稱        musicName.innerHTML = allMusic[Index].MusicName;        //谷歌瀏覽器不允許直接play        //myAudio.play();        //播放暫停的事件        playBtn.onclick = function(){            //myAudio.play();            playBln = !playBln;            if(playBln == false){                myAudio.play();            }            else{                myAudio.pause();            }        };        //聲音的事件        volumeNode.onclick = function(){            volumeBln = !volumeBln;            if(volumeBln == false){                myAudio.volume = 0;                this.className = 'no_volumeNode';            }            else{                myAudio.volume = 1;                this.className = 'volumeNode';            }        };        //播放時(shí) 進(jìn)度條的長(zhǎng)度控制計(jì)算        myAudio.addEventListener('timeupdate',function(){            trueLine.style.width = myAudio.currentTime / myAudio.duration * 100 + '%';        });        //點(diǎn)擊progressNode元素 讓進(jìn)度條直接到達(dá)這個(gè)位置        progressNode.onclick = function(e){            var ev = e || event;            //算法 就是 算出 點(diǎn)擊的位置 在 外層進(jìn)度條的 多少像素            //需要一個(gè)鼠標(biāo)坐標(biāo)點(diǎn) 減去 外層元素的 offsetLeft 和 最外層元素的offsetLeft             // 320秒 *  0.50 = 160秒            myAudio.currentTime = myAudio.duration * ((ev.clientX - (this.offsetLeft + outerNode.offsetLeft))/this.offsetWidth);            trueLine.style.width = ((ev.clientX - (this.offsetLeft + outerNode.offsetLeft))/this.offsetWidth) * 100 + '%';        };        //下一首歌的事件        nextNode.onclick = function(){            Index ++;            if(Index == allMusic.length){                Index = 0;            }            MusicPlayFn();        };        //音樂(lè)播放的函數(shù)        function MusicPlayFn(){            myAudio.src = allMusic[Index].MusicSrc;            myAudio.currentTime = 0;            trueLine.style.width = '0%';            if(playBln == false){                myAudio.play();            }            else{                myAudio.pause();            }            //給封面賦值            topNode.style.backgroundImage = 'url('+allMusic[Index].MusicPic+')';            //給音樂(lè)名稱            musicName.innerHTML = allMusic[Index].MusicName;        }        //上一首歌的點(diǎn)擊事件        lastNode.onclick = function(){            Index --;            if(Index == -1){                Index = allMusic.length-1;            }            MusicPlayFn();        };    </script></body></html>

總結(jié)

以上所述是小編給大家介紹的HTML5自定義mp3播放器源碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 榆树市| 漳州市| 杭锦后旗| 哈尔滨市| 南召县| 建始县| 九龙县| 金门县| 汝城县| 双辽市| 京山县| 梁山县| 长兴县| 甘肃省| 东乡| 渝中区| 临清市| 财经| 井陉县| 宜城市| 泗洪县| 增城市| 昌乐县| 闽侯县| 长寿区| 奉贤区| 和顺县| 囊谦县| 精河县| 砚山县| 平泉县| 扎囊县| 丰都县| 富锦市| 成安县| 诸城市| 南陵县| 通州市| 苏尼特右旗| 古浪县| 旬阳县|