小程序模板网

音乐视屏播放,歌词展示,暂停/播放/上一首/下一首

年前写的demo,年假家里没有网,就放下了..回来这几天抓紧时间完善了下.分享给大家哦,(歌词动态展示待优化),还有电台那里的接口暂时没有找到.找到后我再添加上去,新的一年,大家一起努力哦!,新年第一帖主要功能:歌曲暂 ...

 
 
 

年前写的demo,年假家里没有网,就放下了..回来这几天抓紧时间完善了下.分享给大家哦,(歌词动态展示待优化),还有电台那里的接口暂时没有找到.找到后我再添加上去,新的一年,大家一起努力哦!,新年第一帖主要功能:

歌曲暂停播放 
上一首 
下一首 
当前歌曲播放完成后自动播放下一首 
歌词动态展示

效果图:

 

 

关键代码

暂停/播放

 

		
  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)


易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/17995.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询