PHP前端开发

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

百变鹏仔 4小时前 #前端问答
文章标签 在线

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

回复音乐消息

<xml><tousername></tousername><fromusername></fromusername><createtime>12345678</createtime><msgtype></msgtype><music><title></title><description></description><musicurl></musicurl><hqmusicurl></hqmusicurl><thumbmediaid></thumbmediaid></music></xml>

核心代码:

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

接口调用:

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

效果演示: