微信公众号-音频接口(上传、下载、辨音)
音频相关接口,其中需要注意的是:上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器,此处获得的 serverId 即 media_id,参考文档 .目前多媒体文件下载接口的频率限制为10000次/天,如需要调高频率,请登录微信公众平台,在开发 – 接口权限的列表中,申请提高临时上限。
音频相关接口,其中需要注意的是:上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器,此处获得的 serverId 即 media_id,参考文档 .目前多媒体文件下载接口的频率限制为10000次/天,如需要调高频率,请登录微信公众平台,在开发 – 接口权限的列表中,申请提高临时上限。
<div class="content"> <!-- 音频接口 --> <!-- 1.开始录音 --> <input type="button" name="" id="startRecord" value="开始录音" /> <!-- 2.播放录音接口 --> <input type="button" name="" id="stopRecord" value="播放录音" /> <!-- 3.暂停播放接口 --> <input type="button" name="" id="pauseVoice" value="暂停播放" /> <!-- 5.上传语音接口 --> <input type="button" name="" id="uploadVoice" value="上传语音" /> <!-- 6.下载语音接口 --> <input type="button" name="" id="downloadVoice" value="下载语音" /> <!-- 7.识别音频并返回识别结果接口 --> <input type="button" name="" id="translateVoice" value="听音辨字" /> <div class="translateVoice" style="border: 1px solid #EBEBEB;padding: 20px;"> </div> </div>
相关js代码
globalObj.post({ url: window.location.href, }, \'/apis/Wxshare/share_wx\', function(res) { // alert(JSON.stringify(res)) var signPackage = res.data.signPackage wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: signPackage.appId, // 必填,公众号的唯一标识 timestamp: signPackage.timestamp, // 必填,生成签名的时间戳 nonceStr: signPackage.nonceStr, // 必填,生成签名的随机串 signature: signPackage.signature, // 必填,签名,见附录1 jsApiList: [\'startRecord\',\'stopRecord\',\'playVoice\',\'translateVoice\', \'onVoiceRecordEnd\',\'pauseVoice\',\'onVoicePlayEnd\',\'uploadVoice\',\'downloadVoice\'], // 所有要调用的 API 都要加到这个列表中 }); wx.ready(function() { var serverId=\'\'//服务器音频ID var startflag=true $(\'#startRecord\').on(\'tap\',function(){ if(startflag){ <!-- 1.开始录音 --> $(\'[name=startRecord]\').val(\'停止录音\') wx.startRecord(); startflag = false <!-- 4.监听录音自动停止接口 --> wx.onVoiceRecordEnd({ // 录音时间超过一分钟没有停止的时候会执行 complete 回调 complete: function (res) { var localId = res.localId; $(\'#stopRecord\').attr(\'data-localId\',localId) startflag = true } }); }else{ <!-- 2.停止录音接口 --> wx.stopRecord({ success: function (res) { var localId = res.localId; // 把音频的本地ID绑定到播放音频的按钮上 $(\'#stopRecord\').attr(\'data-localId\',localId) $(\'[name=startRecord]\').val(\'开始录音\') } }); } }) $(\'#stopRecord\').on(\'tap\',function(){ <!-- 3.播放录音接口 --> wx.playVoice({ localId: $(\'#stopRecord\').attr(\'data-localId\'), // 需要播放的音频的本地ID,由stopRecord接口获得 success:function(){ // 监听语音播放完毕接口 wx.onVoicePlayEnd({ success: function (res) { var localId = res.localId; // 返回音频的本地ID alert(\'语音播放完毕\') } }); } }); }) $(\'#pauseVoice\').on(\'tap\',function(){ <!-- 3.播放录音接口 --> wx.pauseVoice({ localId: $(\'#stopRecord\').attr(\'data-localId\') // 需要播放的音频的本地ID,由stopRecord接口获得 }); }) $(\'#uploadVoice\').on(\'tap\',function(){ <!-- 5.上传语音 --> /** * 上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器,此处获得的 serverId 即 media_id */ wx.uploadVoice({ localId: $(\'#stopRecord\').attr(\'data-localId\'), // 需要播放的音频的本地ID,由stopRecord接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { serverId = res.serverId; // 返回音频的服务器端ID alert(\'上传成功\') } }); }) $(\'#downloadVoice\').on(\'tap\',function(){ <!-- 6.下载语音 --> wx.downloadVoice({ serverId: serverId, // 需要播放的音频的本地ID,由stopRecord接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { var localId = res.localId; // 返回音频的本地ID $(\'#stopRecord\').attr(\'data-localId\',localId) } }); }) $(\'#translateVoice\').on(\'tap\',function(){ <!-- 6.下载语音 --> wx.translateVoice({ localId: $(\'#stopRecord\').attr(\'data-localId\'), // 需要播放的音频的本地ID,由stopRecord接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { $(\'.translateVoice\').html(res.translateResult) } }); }) }); })