音乐播放小程序demo
生活随笔
收集整理的這篇文章主要介紹了
音乐播放小程序demo
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
好長(zhǎng)時(shí)間以來(lái),自己就有個(gè)想法為自己寫一個(gè)音樂(lè)播放器小程序,以方便自己的使用,找網(wǎng)上的好多API,找不到,想抓接口,好多大廠都用了加密。結(jié)果自己僅僅整了點(diǎn)本地的數(shù)據(jù)。
?
只介紹一些具體的方法:
// 解碼>>中文reconvert: function (str) {str = str.replace(/(\\u)(\w{1,4})/gi, function ($0) {return (String.fromCharCode(parseInt((escape($0).replace(/(%5Cu)(\w{1,4})/g, "$2")), 16)));});str = str.replace(/(&#x)(\w{1,4});/gi, function ($0) {return String.fromCharCode(parseInt(escape($0).replace(/(%26%23x)(\w{1,4})(%3B)/g, "$2"), 16));});str = str.replace(/(&#)(\d{1,6});/gi, function ($0) {return String.fromCharCode(parseInt(escape($0).replace(/(%26%23)(\d{1,6})(%3B)/g, "$2")));});return str;},// 解析歌詞的方法parseLyric: function (lrc) {var lyrics = lrc.split("\n");var lrcObj = {};for (var i = 0; i < lyrics.length; i++) {var lyric = decodeURIComponent(lyrics[i]);var timeReg = /\[\d*:\d*((\.|\:)\d*)*\]/g;var timeRegExpArr = lyric.match(timeReg);if (!timeRegExpArr)continue;var clause = lyric.replace(timeReg, '');if (clause.length > 0) {for (var k = 0, h = timeRegExpArr.length; k < h; k++) {var t = timeRegExpArr[k];var min = Number(String(t.match(/\[\d*/i)).slice(1)),sec = Number(String(t.match(/\:\d*/i)).slice(1));var time = min * 60 + sec;lrcObj[time] = clause;}}}return lrcObj;},// 轉(zhuǎn)換時(shí)間格式timeToString: function (duration) {var str = '';var minute = parseInt(duration / 60) < 10? ('0' + parseInt(duration / 60)): (parseInt(duration / 60));var second = duration % 60 < 10? ('0' + duration % 60): (duration % 60);str = minute + ':' + second;return str; },?
2.播放控制
// 播放狀態(tài)控制songPlay: function () {clearInterval(timer);var timer = setInterval(function () {// 獲取后臺(tái)音樂(lè)播放狀態(tài)wx.getBackgroundAudioPlayerState({success: function (res) {// 播放狀態(tài) 1表示播放中if (res.status == 1) {that.setData({isPlaying: true,songState: {progress: res.currentPosition / res.duration * 100,currentPosition: that.timeToString(res.currentPosition),duration: that.timeToString(res.duration)}});var i = that.data.currentIndexif (i < that.data.lyric.length) {if (res.currentPosition - 4 >= parseInt(that.data.lyric[i][0])) {that.setData({currentIndex: i + 1})}}if (that.data.currentIndex >= 5) {that.setData({scrollTop: (that.data.currentIndex - 5) * 20,})}} else {that.setData({ isPlaying: false });clearInterval(timer);}}});}, 1000);},具體項(xiàng)目我已經(jīng)放https://github.com/dt8888/JokeProject,請(qǐng)去下載參考!
專欄作家
honey緣木魚(yú)。小程序社區(qū)博主,堅(jiān)持原創(chuàng)分享技術(shù)博文。
本文原創(chuàng)發(fā)布于小程序社區(qū)。未經(jīng)許可,禁止轉(zhuǎn)載
原文地址:音樂(lè)播放小程序demo-微信小程序聯(lián)盟/博主專區(qū)-微信小程序開(kāi)發(fā)社區(qū)-微信小程序聯(lián)盟
?
相關(guān)文章:
微信小程序Demo:音樂(lè)之聲(音樂(lè)播放小程序)
微信小程序Demo:TealMusic音樂(lè)播放器
總結(jié)
以上是生活随笔為你收集整理的音乐播放小程序demo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在哪里可以找水系图_请问在哪可以找到广西
- 下一篇: iOS 测试三方 KIF 的那些事