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

需求:利用微信公众号开发接口下载语音,展示并可以收听语音

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格式音频文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值