小程序模板網(wǎng)

音樂視屏播放,歌詞展示,暫停/播放/上一首/下一首

發(fā)布時(shí)間:2017-11-29 18:11 所屬欄目:小程序開發(fā)教程

年前寫的demo,年假家里沒有網(wǎng),就放下了..回來這幾天抓緊時(shí)間完善了下.分享給大家哦,(歌詞動(dòng)態(tài)展示待優(yōu)化),還有電臺(tái)那里的接口暫時(shí)沒有找到.找到后我再添加上去,新的一年,大家一起努力哦!,新年第一帖主要功能:歌曲暫 ...

 
 
 

年前寫的demo,年假家里沒有網(wǎng),就放下了..回來這幾天抓緊時(shí)間完善了下.分享給大家哦,(歌詞動(dòng)態(tài)展示待優(yōu)化),還有電臺(tái)那里的接口暫時(shí)沒有找到.找到后我再添加上去,新的一年,大家一起努力哦!,新年第一帖主要功能:

歌曲暫停播放 
上一首 
下一首 
當(dāng)前歌曲播放完成后自動(dòng)播放下一首 
歌詞動(dòng)態(tài)展示

效果圖:

 

 

關(guān)鍵代碼

暫停/播放

 

		
  1. playAndPause: function () {
  2.  
  3. var that = this
  4.  
  5. if (that.data.isPlaying) {
  6.  
  7. wx.pauseBackgroundAudio()
  8.  
  9. } else {
  10.  
  11. wx.playBackgroundAudio()
  12.  
  13. }
  14.  
  15. that.playSong()
  16.  
  17. that.setData({
  18.  
  19. isPlaying: !that.data.isPlaying
  20.  
  21. })
  22.  
  23. },

上一首

 

		
  1.  
  2.  
  3. before: function () {
  4.  
  5. var that = this
  6.  
  7. that.setData({
  8.  
  9. currentIndex: 0,
  10.  
  11. marginTop: 0,
  12.  
  13. lrcHeight:200,
  14.  
  15. })
  16.  
  17. if (that.data.songIndex == 0) {
  18.  
  19. that.requestDataSong(that.data.datalist[that.data.datalist.length - 1].song_id)
  20.  
  21. that.songLrc(that.data.datalist[that.data.datalist.length - 1].song_id)
  22.  
  23. that.setData({
  24.  
  25. songIndex: that.data.datalist.length - 1
  26.  
  27. })
  28.  
  29. } else {
  30.  
  31. that.requestDataSong(that.data.datalist[that.data.songIndex - 1].song_id)
  32.  
  33. that.songLrc(that.data.datalist[that.data.songIndex - 1].song_id)
  34.  
  35. that.setData({
  36.  
  37. songIndex: that.data.songIndex - 1
  38.  
  39. })
  40.  
  41. }
  42.  
  43. },

歌曲播放

 

		
  1. playSong: function () {
  2.  
  3. var that = this
  4.  
  5. let inv = setInterval(function () {
  6.  
  7. wx.getBackgroundAudioPlayerState({
  8.  
  9. success: function (res) {
  10.  
  11. if (res.status == 1) {
  12.  
  13. that.setData({
  14.  
  15. isPlaying: true,
  16.  
  17. songState: {
  18.  
  19. progress: res.currentPosition / res.duration * 100,
  20.  
  21. currentPosition: that.timeToString(res.currentPosition),
  22.  
  23. duration: that.timeToString(res.duration),
  24.  
  25. }
  26.  
  27. })
  28.  
  29. var i = that.data.currentIndex
  30.  
  31. if (i < that.data.lry.length) {
  32.  
  33. if (res.currentPosition - 4 >= parseInt(that.data.lry[0])) {
  34.  
  35. that.setData({
  36.  
  37. currentIndex: i + 1
  38.  
  39. })
  40.  
  41. }
  42.  
  43. }
  44.  
  45. if (that.data.currentIndex >= 6) {
  46.  
  47. that.setData({
  48.  
  49. marginTop: -(that.data.currentIndex - 6) * 20,
  50.  
  51. lrcHeight:200 + (that.data.currentIndex - 6) * 20
  52.  
  53. })
  54.  
  55. }
  56.  
  57. } else {
  58.  
  59. that.setData({
  60.  
  61. isPlaying: false
  62.  
  63. })
  64.  
  65. clearInterval(inv)


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://22321a.com/wxmini/doc/course/17995.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢