麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > HTML5 > 正文

HTML5自定義mp3播放器源碼

2024-09-05 07:23:13
字體:
供稿:網(wǎng)友

audio對象

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í)長duration

   //返回音頻的總長度            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'>                <!-- 音樂名稱 -->                <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'),        //音樂名稱        musicName = document.querySelector('.musicName');        //給播放器添加js        //創(chuàng)建audio對象        var myAudio = new Audio();        //給audio對象一個(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+')';        //給音樂名稱        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)度條的長度控制計(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();        };        //音樂播放的函數(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+')';            //給音樂名稱            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播放器源碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人福利视频在线观看 | 91精品国啪老师啪 | 久久艹精品视频 | 色中色在线视频 | 国产一区二区三区精品在线观看 | 91在线色| 久草在线视频精品 | 天堂成人国产精品一区 | 亚洲综合一区二区三区 | 久久精品视频亚洲 | 污片在线观看视频 | 成人午夜在线免费视频 | 国产无遮挡一级毛片 | 久久久久久久一区 | 看91视频| 中文字幕网在线 | av成人免费在线观看 | 综合在线一区 | 日本成年网 | 国产九九在线视频 | 港台三级在线观看 | 高清成人在线 | 成人毛片100免费观看 | 99久久精品免费 | 激情视频日韩 | 越南一级黄色片 | 狠狠干夜夜草 | 失禁高潮抽搐喷水h | 特大黑人videos与另类娇小 | 1314av| 夜夜看| 日本不卡中文字幕 | 蜜桃一本色道久久综合亚洲精品冫 | 精品国产一区二区三区四区在线 | 久久免费视频精品 | 九九热精品免费 | 欧美一区二区三区中文字幕 | 欧美大电影免费观看 | 国产精品久久久久久久久久尿 | 国产精品久久久久久久hd | 日本免费不卡一区二区 |