在javascript中使用mediaRecorder录制麦克风时,如何指定位深度和采样率?
一般来说,标准CD的持续时间为74分钟,采样率为44.1KHZ,左右双声道(立体声)。其容量可使用以下公式计算:在javascript中使用mediaRecorder录制麦克风时,如何指定位深度和采样率?,javascript,audio-recording,microphone,mediarecorder,Javascript,Audio Recording,Microphone,Mediarecorder,一般来说,标准CD的持续时间为74分钟,采样率为44.1KHZ,左右双声道(立体声)。其容量可使用以下公式计算: (44100*16*2)/8*(74*60)=783216000bytes 16是指钻头深度吗 下面是我用来录制的代码片段 const options = { mimeType: 'audio/webm;codecs=pcm', audioBitsPerSecond: 128 }; const recordedChunks = [] const mediaRecord
(44100*16*2)/8*(74*60)=783216000bytes
16是指钻头深度吗
下面是我用来录制的代码片段
const options = {
mimeType: 'audio/webm;codecs=pcm',
audioBitsPerSecond: 128
};
const recordedChunks = []
const mediaRecorder = new MediaRecorder(stream, options)
mediaRecorder.addEventListener('dataavailable', function (e) {
if (e.data.size > 0) {
recordedChunks.push(e.data)
}
})
mediaRecorder.addEventListener('stop', function () {
fileReader.readAsDataURL(new Blob(recordedChunks))
})
mediaRecorder.start()
在搜索文档后,我没有找到位深度、通道和采样率选项。有什么想法吗?您可以通过修改对象,然后使用MediaStreamTrack.applyConstraint(约束)将其应用于MediaStreamTrack来指定采样率、通道计数和位深度。MediaStreamTrack应该可以通过进入您的MediaRecorder的MediaStream访问 (等式中的16表示钻头深度)
(44100采样*16每个采样位*2个音频通道)/8每个字节位*(74分钟*60秒/分钟)=783216000字节位深度是否意味着采样?我像这样指定参数:
navigator.mediaDevices.getUserMedia({audio:{sampleSize:16,channelCount:1,sampleRate:16000}})。然后(stream=>{var audioTrack=stream.getAudioTracks()[0];console.log(audioTrack.getSettings())}
,在chrome中,记录的音频设置是{deviceId:“默认”,“回声取消”:false}
,似乎参数不起作用,mozilla文档也表明音频曲目属性不受支持。还有其他解决方案吗?嗨,有解决方案吗?