微信JSSDK 音频下载speex转码问题

本文介绍如何使用微信API下载音频资源,并将其从speex格式转换为mp3格式。通过调用微信接口获取音频流,然后使用spx2wav工具进行格式转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 根据media_id调用微信接口下载音频,此处省略
  2. 下载下来的音频为speex格式,需要转码, windows下可使用该工具进行转码:spx2wav.exe,提取码:n6ht
  3. 使用方式如下图:
    在这里插入图片描述
  4. 代码示例:
/**
 * 微信采用easywechat
 * @param string mediaId 微信素材ID
 * @param string path 从微信根据mediaId下载该资源后保存路径
 **/
PUBLIC function GetJssdkMedia($mediaId, $path){
    $stream = $this->app->media->getJssdkMedia($mediaId);     //临时素材
  //$stream = $this->app->material->get($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');

    //1.0 整理路径
    $dirPath  = $UPLOAD_RESOURCE_URL.'/'.$SaaSClientKey.'/Audio'; //CDN静态资源文件夹路径 /Upload/Resource/1/Audio
    $diskPath = $UPLOAD_RESOURCE_PATH. $dirPath; //CDN静态资源磁盘路径F:/ZX/Test/CDN/Upload/Resource/1/Audio
    //2.0 下载音频
    $WECHAT  = WXBuilder::GetWXofficialAccount($SaaSClientKey);
    $spxFile = $WECHAT->GetJssdkMedia($mediaId, $dirPath);
    $mp3File = pathinfo($spxFile, PATHINFO_FILENAME).'.mp3';
    //3.0 音频转码speex->mp3
    $filePath = $diskPath.'/'.$spxFile; //F:/ZX/Test/CDN/Upload/Resource/1/Audio/abc.speex
    $savePath = $diskPath.'/'.$mp3File; //F:/ZX/Test/CDN/Upload/Resource/1/Audio/abc.mp3
    $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";
	//F:/ZX/Test/API/ImportantFiles/Tools/spx2wav_win/spx2wav.exe   F:/ZX/Test/CDN/Upload/Resource/1/Audio/abc.speex F:/ZX/Test/CDN/Upload/Resource/1/Audio/abc.mp3"
     exec($command, $result, $status); 
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值