需求:利用微信公众号开发接口下载语音,展示并可以收听语音
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 "";
}
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
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格式音频文件。