- 根据media_id调用微信接口下载音频,此处省略
- 下载下来的音频为speex格式,需要转码, windows下可使用该工具进行转码:spx2wav.exe,提取码:n6ht
- 使用方式如下图:

- 代码示例:
PUBLIC function GetJssdkMedia($mediaId, $path){
$stream = $this->app->media->getJssdkMedia($mediaId);
if(is_array($stream) && isset($stream['errcode'])){
throw new BusinessException($stream['errmsg'], $stream['errcode']);
}
$filename = $mediaId.'.speex';
$stream->saveAs($path, $filename);
return $filename;
}
PUBLIC function getJssdkMedia($SaaSClientKey, $mediaId){
$UPLOAD_RESOURCE_URL = \PhalApi\DI()->config->get('config.UPLOAD_RESOURCE_URL');
$UPLOAD_RESOURCE_PATH = \PhalApi\DI()->config->get('config.UPLOAD_RESOURCE_PATH');
$dirPath = $UPLOAD_RESOURCE_URL.'/'.$SaaSClientKey.'/Audio';
$diskPath = $UPLOAD_RESOURCE_PATH. $dirPath;
$WECHAT = WXBuilder::GetWXofficialAccount($SaaSClientKey);
$spxFile = $WECHAT->GetJssdkMedia($mediaId, $dirPath);
$mp3File = pathinfo($spxFile, PATHINFO_FILENAME).'.mp3';
$filePath = $diskPath.'/'.$spxFile;
$savePath = $diskPath.'/'.$mp3File;
$this->TranscodingAudition($filePath, $savePath);
return $file = $dirPath .'/'.$mp3File;
}
PUBLIC function TranscodingAudition($filePath, $savePath){
$UPLOAD_CERTIFICATE_PATH = \PhalApi\DI()->config->get('config.UPLOAD_CERTIFICATE_PATH');
$command = "$UPLOAD_CERTIFICATE_PATH/Tools/spx2wav_win/spx2wav.exe $filePath $savePath";
exec($command, $result, $status);
}