HTML5微信jssdk錄音播放語音的方法


HTML5微信jssdk錄音播放語音的方法
需要注意的2個問題
1 就是一定要判斷1秒內 錄音都不算 ps:太短不能錄音
2 錄音超過1分鍾 會發現正在錄音突然消失 所以要寫wx.onVoiceRecordEnd 這個是是1分鍾會自動出發 然后寫上傳數據 ps這個必須要寫在wx.startRecord里面 不然不觸發!!!切記

前端代碼如下
<pre>
var START;
$('.luyin').on('touchstart',function () {
new Date().getTime();
wx.startRecord({
success: function(){
START = new Date().getTime();
wx.onVoiceRecordEnd({
// 錄音時間超過一分鍾沒有停止的時候會執行 complete 回調
complete: function (res) {
alert('最多只能錄制一分鍾');
var localId = res.localId;
uploadluyin(localId,60000);
}
});
},
cancel: function () {
alert('用戶拒絕授權錄音');
return false;
}
});

})
$('.luyin').on('touchend',function () {
var END = new Date().getTime();
//錄音時間
var luyintime=END - START;
if(luyintime < 2000){
END = 0;
START = 0;
wx.stopRecord({});
alert('錄音時間不能少於2秒');
return false;
}else {


wx.stopRecord({
success: function (res) {
var localId = res.localId;

uploadluyin(localId,luyintime);

}
});
}
})

function uploadluyin(localId,luyintime) {
wx.uploadVoice({
localId: localId, // 需要上傳的音頻的本地ID,由stopRecord接口獲得
isShowProgressTips: 1, // 默認為1,顯示進度提示
success: function (res) {
var serverId = res.serverId; // 返回音頻的服務器端ID
console.log(serverId);

$.post("/home/xishanluyin/scyuyin", {
"serverId": serverId,
"luyintime": luyintime
},
function (data) {
if (data.success == 1) {
alert('錄音成功');
} else {
alert(data.msg);
}
}, "json");
}
})
}
</pre>

后端代碼 核心代碼如下直接寫入amr就行 因為生成的默認都是amr


<pre>
$ft = copy("http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$accessToken}&media_id={$imgServerId}",
"{$imgServerId}.mp3");
//轉成mp3 注意只有在真機上才可以成功轉成mp3 微信web開發者工具生成的amr不能轉成mp3的
shell_exec('ffmpeg -i _wb2tS6SdvJxNu762u-qSfJgrxsEDw-fjXJSIitgD9_GBTvoLpIzAyzA9d7Wil_W.amr _wb2tS6SdvJxNu762u-qSfJgrxsEDw-fjXJSIitgD9_GBTvoLpIzAyzA9d7Wil_W.mp3');

</pre>
ffmpeg 命令需要安裝一些軟件
具體說明請<a href="http://newmiracle.cn/?p=1072">ffmpeg源碼安裝教程</a>
轉好的mp3拖到瀏覽器測試下 如果可以 就說明轉mp3成功了

然后返回web路徑就OK啦 這個audio就可以訪問啦

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM