音頻相關接口,其中需要注意的是:上傳語音有效期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) } }); }) }); })