公司报备网站,郑州竞价代运营公司,好的网站首页建设公司,网站推广效果的评价一些型号的iphone手机录音获取流stream延迟问题 以及 录音一次第二次不录音问题
延迟问题
navigator.mediaDevices.getUserMedia({ audio: true }) .then((stream) {console.log(stream)
}#xff09;从开始到获取stream会有将近2s的延迟 导致按下按钮开始录音 会有前…一些型号的iphone手机录音获取流stream延迟问题 以及 录音一次第二次不录音问题
延迟问题
navigator.mediaDevices.getUserMedia({ audio: true }) .then((stream) {console.log(stream)
}从开始到获取stream会有将近2s的延迟 导致按下按钮开始录音 会有前面部分语音没录上 Safari 默认启用了音频回声消除和噪声抑制这些处理可能会增加延迟。 默认的音频轨道配置可能不适配部分 iOS 设备 修改建议禁用回声消除和噪声抑制 通过 getUserMedia 的 audio 约束显式关闭这些 功能。 指定简单的音频轨道配置 。
navigator.mediaDevices.getUserMedia({audio: {echoCancellation: false,noiseSuppression: false,autoGainControl: false,},}) .then((stream) {console.log(stream)
}第二次不录音问题 获取stream之后 // 检查 stream 是否有轨道if (stream.getTracks().length 0) {console.error(流中没有轨道);return;}// 获取音频轨道const audioTrack stream.getAudioTracks()[0];if (audioTrack) {console.log(音频轨道获取成功轨道状态为:, audioTrack.readyState);// 保存对音频轨道的引用this.globalAudioTrack audioTrack;// 监听轨道结束事件audioTrack.onended () {console.log(音频轨道结束);// 重新获取音频流// this.requestAudioPermission();// 这里可以根据需要重新获取流或者处理轨道结束的情况};// 如果需要您可以在这里将流连接到HTML元素// const audioElement document.querySelector(audio);// audioElement.srcObject stream;// 确保轨道是启用状态audioTrack.enabled true;} else {console.error(流中没有音频轨道);}停止录音后// 清除对已停止轨道的引用 stopAudioTrack() {if (this.globalAudioTrack) {this.globalAudioTrack.stop();this.globalAudioTrack null; // 清除对已停止轨道的引用} else {console.log(没有可关闭的音频轨道);}},