cyk 发表于 2017-1-9 16:11:53

小程序demo:QQ音乐;音乐搜索,音乐列表及播放停止

本帖最后由 cyk 于 2017-1-9 16:25 编辑

微信小程序demo:QQ音乐;音乐搜索,音乐列表及播放停止







代码示例:
var util = require('../../utils/util.js')

var app = getApp()

Page({
    data: {
      playingSong: {},
      songUrl: '',
      songImg: '',
      songState: {
            progress: 0,
            currentPosition: '00:00',
            duration: '00:00'
      },
      isPlaying: true,
      lyric: ''
    },
    onLoad: function(){
      console.log('playsong onLoad');

      let that = this;
      let songdata = app.globalData.songData;
         
      that.setData({
            playingSong: songdata,
            songUrl: 'http://ws.stream.qqmusic.qq.com/C100' + songdata.songmid + '.m4a?fromtag=38',
            songImg: 'http://y.gtimg.cn/music/photo_new/T002R150x150M000' + songdata.albummid + '.jpg',
      });

      let thatData = that.data;
      wx.playBackgroundAudio({
            dataUrl: thatData.songUrl,
            title: thatData.playingSong.songname,
            coverImgUrl: thatData.songImg,
            success: function(res){
                //do something
            }
      });
    },
    onReady: function(){
      console.log('playsong onReady');
      let that = this;
      that.songPlay();

      wx.onBackgroundAudioPlay(function(){
            console.log('播放了');
            that.songPlay();
      });
    },
    timeToString: function(duration){
      let str = '';
      let minute = parseInt(duration/60) < 10 ? ('0'+ parseInt(duration/60)) : (parseInt(duration/60));
      let second = duration%60 < 10 ? ('0'+duration%60) : (duration%60);
      str = minute+':'+second;
      return str;
    },
    songPlay: function(){
      let that = this;
      let inv = setInterval(function(){
            wx.getBackgroundAudioPlayerState({
                success: function(res){
                  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)
                            }
                        })
                  }else{
                        that.setData({
                            isPlaying: false
                        });
                        clearInterval(inv);
                  }
                }
            });
      }, 1000);
    },
    songToggle: function(){
      let that = this;

      if(that.data.isPlaying){
            wx.pauseBackgroundAudio();
      }else{
            wx.playBackgroundAudio({
                title: that.data.playingSong.songname,
                coverImgUrl: that.data.songImg
            });
      };

      that.songPlay();
    }
})

伴之则暖〆 发表于 2017-5-11 15:47:29

啥也不说了,感谢楼主分享哇!

蓝博兔 发表于 2017-5-12 12:32:10

啥也不说了,感谢楼主分享
- 本文出

深圳市绿联科技有限公司 发表于 2017-10-6 21:50:41

感谢楼主的分享。

创不可贴 发表于 2018-2-5 16:08:28

啥也不说了,感谢楼主分享

13246043862 发表于 2018-8-20 15:59:39


感谢楼主分享

冷月夕 发表于 2018-11-16 08:51:12

42若2日34234234

myName 发表于 2019-1-12 11:29:32

66666666666666666

zetto996 发表于 2019-2-16 15:33:24

:lol6666666

zetto996 发表于 2019-2-16 15:34:04

:lol6666666666666666666666666
页: [1] 2
查看完整版本: 小程序demo:QQ音乐;音乐搜索,音乐列表及播放停止