<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        基于JavaScript實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:22:01
        文檔

        基于JavaScript實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能

        基于JavaScript實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能:現(xiàn)效果如下: 由于我這邊不需要其他按鈕,就沒(méi)寫(xiě) 數(shù)據(jù)是由后臺(tái)提供,在這做了個(gè)小列子 后臺(tái)代碼 public ActionResult MusicPlayer(int musicId=0) { MusicPlayerModel model = new MusicPlayerModel(); switch (mus
        推薦度:
        導(dǎo)讀基于JavaScript實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能:現(xiàn)效果如下: 由于我這邊不需要其他按鈕,就沒(méi)寫(xiě) 數(shù)據(jù)是由后臺(tái)提供,在這做了個(gè)小列子 后臺(tái)代碼 public ActionResult MusicPlayer(int musicId=0) { MusicPlayerModel model = new MusicPlayerModel(); switch (mus

        現(xiàn)效果如下:

        由于我這邊不需要其他按鈕,就沒(méi)寫(xiě)

        數(shù)據(jù)是由后臺(tái)提供,在這做了個(gè)小列子

        后臺(tái)代碼

        public ActionResult MusicPlayer(int musicId=0) {
         MusicPlayerModel model = new MusicPlayerModel();
         switch (musicId)
         {
         default:
         model.MusicName = "Believe-動(dòng)畫(huà)《海賊王》";
         model.CoverImg = "/Content/Music/Believe-cover.jpg";
         model.FileUrl = "/Content/Music/Believe.mp3";
         model.MusicStartSecond = 0;
         model.MusicEndSecond = 227;
         break;
         case 1:
         model.MusicName = "夢(mèng)回還-動(dòng)畫(huà)《狐妖小紅娘》";
         model.CoverImg = "/Content/Music/夢(mèng)回還-cover.jpg";
         model.FileUrl = "/Content/Music/夢(mèng)回還.mp3";
         model.MusicStartSecond = 0;
         model.MusicEndSecond = 250;
         break;
         }
         return View(model);
         }

        頁(yè)面代碼

        @using FunctionTest.Web.Areas.Function.Models;
        @model MusicPlayerModel
        @{
         ViewBag.Title = "MusicPlayer";
         Layout = "~/Areas/Function/Views/Shared/_FunctionLayout.cshtml";
        }
        <link href="~/Assets/Function/MusicPlayer/musicPlayer.css" rel="external nofollow" rel="stylesheet" />
        <script src="~/Assets/Function/MusicPlayer/musicPlayer.js"></script>
        <div class="img-wapper">
         <img src="@Model.CoverImg" />
        </div>
        <div id="player-wapper" class="player-wapper">
         <div class="cover-wapper">
         <img src="@Model.CoverImg" />
         <div class="play">
         <i></i>
         </div>
         </div>
         <div class="info-wapper">
         <div class="title">@Model.MusicName</div>
         <audio id="audio-player" src="@Model.FileUrl" data-src="@Model.FileUrl" data-start="@Model.MusicStartSecond" data-end="@Model.MusicEndSecond" ></audio>
         <div class="audio-progress">
         <span id="start-time" class="start-time">00:00</span>
         <div id="progress" class="progress">
         <span id="player-progress-bar" class="bar">
         <i></i>
         </span>
         </div>
         <span id="end-time" class="end-time">00:00</span>
         </div>
         </div>
        </div>

        Js

        ;$(function () {
         var $playerWapper = $("#player-wapper"),
         $audioPlay = $("#audio-player"),
         startSecond = $audioPlay.data("start"),//默認(rèn)開(kāi)始時(shí)間(秒)
         endSecond = $audioPlay.data("end"),//默認(rèn)結(jié)束時(shí)間(秒)
         playSecond = startSecond,//已播放時(shí)間(秒)
         surplusSecond = endSecond,//剩余時(shí)間(秒)
         audoiTimer = null;
         LoadingTime();
         Playing();
         //通過(guò)點(diǎn)擊進(jìn)度條實(shí)現(xiàn)播放跳轉(zhuǎn)
         $(".progress").click(function (e) {
         //獲取當(dāng)前鼠標(biāo)相對(duì)進(jìn)度條的X坐標(biāo)
         var positionX = e.pageX - $(this).offset().left; 
         var width = $(this).width();
         //進(jìn)度條的X坐標(biāo)/進(jìn)度條寬度獲取播放占比
         var progess = (positionX / width).toFixed(2);
         $("#player-progress-bar").css("width", progess);
         //播放占比*總時(shí)間獲取已播放時(shí)間
         playSecond = parseInt(progess * endSecond);
         surplusSecond = endSecond - playSecond;
         //播放器跳轉(zhuǎn)/跟新播放時(shí)間
         $audioPlay[0].currentTime = playSecond;
         LoadingTime();
         })
         //播放按鈕點(diǎn)擊事件
         $(".play").click(function () {
         if ($playerWapper.hasClass("playing")) {
         Pause();
         }
         else {
         Playing();
         }
         })
         //開(kāi)始/繼續(xù)播放
         function Playing() {
         $playerWapper.addClass("playing");
         $playerWapper.removeClass("pause");
         $audioPlay[0].play();
         audoiTimer = setInterval(function () {
         playSecond++;
         surplusSecond--;
         LoadingTime();
         if (surplusSecond <= 0) {
         playSecond = startSecond;
         surplusSecond = endSecond;
         Pause();
         }
         }, 1000); //每個(gè)1秒執(zhí)行一次
         }
         //暫停播放
         function Pause() {
         $playerWapper.removeClass("playing");
         $playerWapper.addClass("pause");
         window.clearInterval(audoiTimer);
         $audioPlay[0].pause();
         }
         //加載時(shí)間和進(jìn)度條
         function LoadingTime() {
         $("#start-time").html(secondToTime(playSecond));
         $("#end-time").html(secondToTime(surplusSecond));
         $("#player-progress-bar").css("width", Percentage(playSecond, endSecond));
         }
         //計(jì)算百分比
         function Percentage(second1, second2) {
         return (Math.round(second1 / second2 * 10000) / 100+ "%");// 小數(shù)點(diǎn)后兩位百分比
         }
         //時(shí)間轉(zhuǎn)換,將秒轉(zhuǎn)為00:00:00格式
         function secondToTime(s) {
         var t;
         if (s > -1) {
         var hour = Math.floor(s / 3600);
         var min = Math.floor(s / 60) % 60;
         var sec = s % 60;
         if (hour < 10) {
         t = '0' + hour + ":";
         } else {
         t = hour + ":";
         }
         if (min < 10) { t += "0"; }
         t += min + ":";
         if (sec < 10) { t += "0"; }
         t += sec;
         }
         return t;
         }
        })

        總結(jié)

        以上所述是小編給大家介紹的基于JavaScript實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        基于JavaScript實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能

        基于JavaScript實(shí)現(xiàn)簡(jiǎn)單的音頻播放功能:現(xiàn)效果如下: 由于我這邊不需要其他按鈕,就沒(méi)寫(xiě) 數(shù)據(jù)是由后臺(tái)提供,在這做了個(gè)小列子 后臺(tái)代碼 public ActionResult MusicPlayer(int musicId=0) { MusicPlayerModel model = new MusicPlayerModel(); switch (mus
        推薦度:
        • 熱門(mén)焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門(mén)推薦

        專(zhuān)題
        Top
        主站蜘蛛池模板: 猫咪www免费人成网站| 亚洲熟妇久久精品| 9久热这里只有精品免费| 色播亚洲视频在线观看| 精品四虎免费观看国产高清午夜| 亚洲亚洲人成综合网络| 成人久久免费网站| 亚洲高清在线观看| 13一14周岁毛片免费| 亚洲第一区二区快射影院| 成全高清视频免费观看| 色天使色婷婷在线影院亚洲| 国产免费观看a大片的网站| 国产成人亚洲精品电影| 国产av无码专区亚洲av果冻传媒| 91成人免费观看在线观看| 亚洲国产精品无码久久一线 | 亚洲一本综合久久| 在线免费观看你懂的| 亚洲综合久久精品无码色欲| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 日韩高清免费观看| rh男男车车的车车免费网站| 亚洲AV无码AV男人的天堂| 在线视频精品免费| 国产精品亚洲一区二区三区| 久久精品九九亚洲精品天堂| 99re6在线精品视频免费播放| 亚洲中文无码av永久| 亚洲精品国产综合久久一线| 蜜桃成人无码区免费视频网站| 免费无码国产在线观国内自拍中文字幕 | 国产激情久久久久影院老熟女免费 | 亚洲精品色播一区二区| 国产亚洲日韩在线三区| 18级成人毛片免费观看| 福利片免费一区二区三区| 亚洲福利在线视频| 亚洲国产香蕉人人爽成AV片久久 | 亚洲精品无码久久久影院相关影片| 最近2019中文字幕免费直播|