HTML5 WeChat jssdk で音声を録音および再生する方法 注意が必要な2つの問題 1 1 秒以内の録音はカウントされないと判断する必要があります。 ps: 録音するには短すぎます。 2 録音が 1 分を超えると、録音が突然消えてしまうことがあるので、wx.onVoiceRecordEnd を書き込む必要があります。これは 1 分後に自動的に開始され、アップロード データが書き込まれます。
前端代码如下
$('.luyin').on('touchstart',function () { 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 () { END = new Date().getTime(); //录音时间 luyintime=END - START; if(luyintime < 2000){ END = 0; START = 0; wx.stopRecord({}); alert('录音时间不能少于2秒'); return false; //小于300ms,不录音 }else { wx.stopRecord({ success: function (res) { 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"); } }) }
バックエンドコードのコアコードは次のとおりです
$ft = copy("http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$accessToken}&media_id={$imgServerId}", APP_PATH . "/../Public/{$project}/upload/{$imgServerId}.mp3");
それからBaofengyingyinで再生してください
関連する推奨事項:
フロントエンドWeChat共有jssdk構成:無効な署名署名エラーの解決策
thinkPHP WeChat共有インターフェースJSSDKサンプル説明
以上がHTML5を使用したWeChat jssdkの音声録音と再生の実装例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。