找回密码
 立即注册

扫一扫,访问微社区

查看: 17416|回复: 16

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

 火.. [复制链接]

76

主题

28

回帖

10万

金钱

管理员

积分
0

优秀版主

发表于 2017-1-9 16:11:53 | 显示全部楼层 |阅读模式
本帖最后由 cyk 于 2017-1-9 16:25 编辑

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







代码示例:
[mw_shl_code=applescript,true]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();
    }
})[/mw_shl_code]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

0

主题

62

回帖

825

金钱

新人求带

积分
0
发表于 2017-5-11 15:47:29 | 显示全部楼层
啥也不说了,感谢楼主分享哇!

0

主题

9

回帖

59

金钱

新人求带

积分
0
发表于 2017-5-12 12:32:10 | 显示全部楼层
啥也不说了,感谢楼主分享
- 本文出

0

主题

31

回帖

256

金钱

新人求带

积分
0
发表于 2017-10-6 21:50:41 | 显示全部楼层
感谢楼主的分享。

0

主题

9

回帖

50

金钱

新人求带

积分
0
发表于 2018-2-5 16:08:28 | 显示全部楼层
啥也不说了,感谢楼主分享

0

主题

7

回帖

31

金钱

新人求带

积分
0
发表于 2018-8-20 15:59:39 | 显示全部楼层

感谢楼主分享

0

主题

6

回帖

28

金钱

新人求带

积分
0
发表于 2018-11-16 08:51:12 | 显示全部楼层
42若2日34234234

0

主题

8

回帖

24

金钱

新人求带

积分
0
发表于 2019-1-12 11:29:32 | 显示全部楼层
66666666666666666

0

主题

8

回帖

30

金钱

新人求带

积分
0
发表于 2019-2-16 15:33:24 | 显示全部楼层
6666666
回复

使用道具 举报

0

主题

8

回帖

30

金钱

新人求带

积分
0
发表于 2019-2-16 15:34:04 | 显示全部楼层
6666666666666666666666666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|微信小程序开发|教程|文档|资源汇总_即速论坛 ( 粤ICP备14097199号-1  

GMT+8, 2024-11-24 18:04 , Processed in 0.126646 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表