微信公众平台开发在线点歌功能介绍

微信公众平台的消息接口-音乐消息,这是广大微信公众平台开发者的福音。 根据这一功能,如果能做出在微信中点歌功能,那么我们以后就可以不用安装其他APP, 直接在微信里面关注一个账号,就可以听歌了,还省去了安装的麻烦,而且不用再占用空间。如果音乐资源足够好,那将秒杀一切手机上在线听歌软件也不是没有可能的。

回复音乐消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[TITLE]]></Title>
<Description><![CDATA[DESCRIPTION]]></Description>
<MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>
<HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>
<ThumbMediaId><![CDATA[media_id]]></ThumbMediaId>
</Music>
</xml>

微信公众平台开发在线点歌功能介绍

核心代码:

public function getMusicInfo() {
             
            if ($this->name == ){
                $content = array( Title=>,
                        Description=>你还没告诉我音乐名称呢?,
                        MusicUrl=>,
                        HQMusicUrl=>);
                 
            } else {
                if (strpos($this->name, +)){
                    $music = explode(+,$this->name);
                    $url = http://Box.zhangmen.baidu.com/x?op=12&count=1&title=.$music[1].$$.$music[0].$$$$;
                }else{
                    $url = http://Box.zhangmen.baidu.com/x?op=12&count=1&title=.$this->name.$$;
                }
             
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                $data = curl_exec($ch);
                $content = array( Title=>歌曲【.$this->name.】,
                        Description=>检索失败,
                        MusicUrl=>,
                        HQMusicUrl=>);
                try{
                    @$menus = simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);
                    if ($menus->count > 0 && isset($menus->url[0]) && isset($menus->durl[0])){
                        $url_prefix = substr($menus->url[0]->encode,0,strripos($menus->url[0]->encode,'/') + 1);
                        $url_suffix = substr($menus->url[0]->decode,0,strripos($menus->url[0]->decode,'&'));
                        $durl_prefix = substr($menus->durl[0]->encode,0,strripos($menus->durl[0]->encode,'/') + 1);
                        $durl_suffix = substr($menus->durl[0]->decode,0,strripos($menus->durl[0]->decode,'&'));
                        if (strpos($this->name, +)){
                            $content = array( Title=>$music[1],
                                    Description=>$music[0],
                                    MusicUrl=>$url_prefix.$url_suffix,
                                    HQMusicUrl=>$durl_prefix.$durl_suffix);
                        }else{
                            $content = array( Title=>$this->name,
                                    Description=>百度音乐提供,
                                    MusicUrl=>$url_prefix.$url_suffix,
                                    HQMusicUrl=>$durl_prefix.$durl_suffix);
                        }
                    }
                }catch(Exception $e){
                }
            }
            return $content;
        }

接口调用:

include ('music.class.PHP');
$m = new MusicApi($musicContent);
$mArr = $m->getMusicInfo();
return $this->responseMusic($mArr[Title], $mArr[Description], $mArr[MusicUrl], $mArr[HQMusicUrl], 0);

效果演示:

微信公众平台开发在线点歌功能介绍

相关文章

网页授权获取用户信息的方法
报错config:invalid signature的解决方案
微信开发百思不得姐实战教程
详解微信开发input输入框
教你libco是如何支撑巨大数据信息量的
微信二次开发之文本消息请求与发送