为什么微信听语音黑屏第一条语音不能听,下一条就可以了

zhuqilin &&
我沉静我思考 我的新浪围脖 .cn/happy2016 欢迎加入
& & 最近在做一个微信项目,接触到了微信公众平台。通过公众平台可以很方便的搭建一个功能完善的移动应用。昨天发现:开发者可使用手机号来申请接口测试帐号,体验高级接口。
& &这篇文章的应用将使用到高级接口中的语音识别,以及音乐回复接口。通过这两个接口,让大家体验一下语音点歌的魅力。
& &这个应用简单的来说:就是你向微信公众平台报一首歌名,微信公众平台返回这首歌曲给你听。本文将一步一步教你如何实现这个看似复杂的移动应用。
& 下面是我申请的测试账号的二维码,大家可以关注一下测试一下效果,不过测试账号的有效期只有一年,最多只能有20个关注者。
另外一个是我个人的订阅号,有更多的功能,没有人数限制,但是不能识别语音。说了这么多,不如自己动动手吧。
首先申请测试账号和百度的bae云平台:
微信公众平台测试账号具体见:http://mp./debug/cgi-bin/sandbox?t=sandbox/login
百度bae见:
相关配置:
申请完成之后,进行相关的配置:
1、在bae上创建应用并申请域名
2、下载公众平台的php演示代码,并上传到bae上
3、调整php代码,并配置接口
然后准备一下音乐的api:
在网上找到了百度的一个私有的音乐api。具体见:
接着开始编码:
1、我们先了解一下用到的微信语音识别接口
我们将语音发送给微信服务器,微信服务器会将语音转换成文字。我们拿到文字之后调用音乐api获取音乐,然后通过微信的被动回复中的回复音乐消息将音乐返回给客户端。
代码如下:(此代码可以直接上传到你的百度bae平台,只需要修改token就可以了)
define("TOKEN", "yourtoken");
$wechatObj = new wechatCallbackapiTest();
// $wechatObj-&valid();
$wechatObj-&responseMsg();
class wechatCallbackapiTest
public function valid()
$echoStr = $_GET["echostr"];
//valid signature , option
if($this-&checkSignature()){
echo $echoStr;
public function responseMsg()
//获取post数据
$postStr =
$GLOBALS["HTTP_RAW_POST_DATA"];
//解析post数据
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$type= $postObj-&MsgT
switch($type)
case "voice";
$resultStr=
$this-&getMusicContent($postObj);
$resultStr;
private function checkSignature()
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
return false;
function getMusicContent($postObj)
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%s&/CreateTime&
&MsgType&&![CDATA[music]]&&/MsgType&
&Title&&![CDATA[%s]]&&/Title&
&Description&&![CDATA[]]&&/Description&
&MusicUrl&&![CDATA[%s]]&&/MusicUrl&
&HQMusicUrl&&![CDATA[%s]]&&/HQMusicUrl&
&FuncFlag&&![CDATA[1]]&&/FuncFlag&
$recognition=$postObj-&R
$keywordc= urlencode($recognition);
$musicapi =
"http://box./x?op=12&count=1&title={$keywordc}\$\$";
$simstr=file_get_contents($musicapi);
$musicobj=simplexml_load_string($simstr);
$musicurl;
foreach($musicobj-&url as $itemobj)
$encode = $itemobj-&
//处理decode ,发现微信在处理音乐的时候有个问题,所以这里删除一个参数
$decode = $itemobj-&
$removedecode = end(explode('&', $decode));
if($removedecode&&"")
$removedecode="&".$removedecode;
$decode = str_replace($removedecode,"", $decode);
$musicurl= str_replace(end(explode('/', $encode))
,$decode,$encode);
$resultStr = sprintf($ret, $postObj-&FromUserName, $postObj-&ToUserName,time(), $recognition,$musicurl,$musicurl);
return $resultStr;
总结:微信的语音识别非常的强大,我的普通话,不算标准,但是每次都能识别出来,另外百度音乐api的音乐应有尽有。
从上面描述可以看到,我只是简单的配置和写了几句简单的php代码,就实现了一个复杂的语音点歌系统。
另外,欢迎大家关注一下我的个人订阅号:
阅读(...) 评论()iphone6锁屏解开后发第一条微信语音不到一秒就会自动断开,再按就没事了,请问是手机问题吗?_百度知道
iphone6锁屏解开后发第一条微信语音不到一秒就会自动断开,再按就没事了,请问是手机问题吗?
如题,怎么解决?
我有更好的答案
为什么就没人能解决这个问题?经常要把一句话重复两遍好难受。。
小问题啊,就是卡了一下呗,原谅它嘛
我的也是,求高手解决问题
我的也是,同病相怜
贴了钢化膜的原因,可以按住的时候手指边左右搓动边说话。
你们是什么版的?国行?港行?越过狱没?
其他类似问题
为您推荐:
iphone6的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您现在的位置: &
微信不能自动播放下一条语音
Lv1.幼儿园O粉
粉丝积分6经验6 精华0签到0天O币0
oppo r7s 不能自动播放下一条语音,你们的可以吗?
OPPO R7s.万人迷
Lv2.小学生O粉
粉丝积分35经验34 精华0签到0天O币0
Lv2.小学生O粉, 积分 35, 距离下一级还需 65 积分
OPPO R7s.万人迷
Lv2.小学生O粉
粉丝积分28经验28 精华0签到1天O币4
Lv2.小学生O粉, 积分 28, 距离下一级还需 72 积分
来自OPPO R7s.万人迷
Lv4.高中生O粉
粉丝积分311经验294 精华0签到6天O币127
Lv4.高中生O粉, 积分 311, 距离下一级还需 689 积分
OPPO R7s.万人迷
粉丝积分6298经验4457 精华0签到50天O币33632
可以的亲,如果您的不能!亲可能是操作上存在问题了
OPPO R7s Plus.大人物
7月28日 星期四85938人签到
风景、卡通、炫酷几何,马上来装扮你的手机吧~
十二星座的专属音乐,你最喜欢哪个呢?
换了4G流量刷刷就没了?今天卤煮就教你一键开启2G网络,再也不用但系费流量了

我要回帖

更多关于 微信语音听不到声音 的文章

 

随机推荐