您的位置:首页 > 移动开发 > 微信开发

微信公众号开发接口语音下载解决方案

2014-03-27 00:06 302 查看
需求:利用微信公众号开发接口下载语音,展示并可以收听语音

1.利用微信公众平台开发接口下载语音文件至本机

/**
* 下载多媒体文件
* @param string $mediaId
* @return string
*/
function downloadWeixinFile($mediaId,$msgId)
{
if($this->issenior=='Y'){
try{
$access_token=$this->GetAccessToken();
$url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=$access_token&media_id=$mediaId";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0);    //只取body头
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$package = curl_exec($ch);
$httpinfo = curl_getinfo($ch);
curl_close($ch);

$prefix=explode("/", $httpinfo["content_type"]);

$filename=$msgId.".".$prefix[1];
//$this->saveWeixinFile($filename, $package);
$local_file = fopen(getcwd()."/upload/".$filename, 'w');
$state=fwrite($local_file, $package);
fclose($local_file);

return $fliename;
}
catch (Exception $e){
return "";
}
}
return "";
}


2.由于下载下来的文件是amr格式,需要转换成MP3格式才能在web播放,所以利用ffmpeg来进行视频转换工作。生产环境部署在ubuntu下,安装步骤如下:
1)首先安装系统基础环境

apt-get install automake autoconf libtool gcc gcc-c++

PS: Ubuntu缺省情况下,并没有提供C/C++的编译环境

可以使用bulid-essential软件包

安装方法如下:
$sudo apt-get installbuild-essential
2)编译所需源码包
yasm:http://yasm.tortall.net/Download.html

lame:http://kakola.googlecode.com/files/lame-3.98.4.tar.gz

PS:一定要下载最新版本,否则后续FFMPEG转换时无法正确解码mp3

OpenCore AMR:http://sourceforge.net/projects/opencore-amr

AmrWB:http://www.penguin.cz/~utx/amr

FFMpeg:http://ffmpeg.org/download.html。

sudo apt-get install ffmpeg libavcodec-extra-53

其中FFMPEG直接使用static bulid 。省去很多编译中出现的问题。

MP3转换AMR: ffmpeg -y -i 1.mp3 -1.amr

3.通过php来调用系统命令进行音频文件实时转换

exec("ffmpeg -y -i ".getcwd()."/upload/".$filename." ".getcwd()."/upload/".$msgId.".mp3");


至此,web页面就可以使用播放器来播放已经转换完毕的MP3格式音频文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  微信 php 音频转换
相关文章推荐