在Javascript中更改音频录制的采样率

在Javascript中更改音频录制的采样率,javascript,html,audiocontext,Javascript,Html,Audiocontext,嗨,我在浏览器上有一个可用的语音录音机。它实现了navigator.getUserMedia和AudioContext 它以.wav格式录制声音,然后转换成.mp3并上传文件 文件采样率设置为44100Hz,mp3输出重新采样为8000Hz。问题在于以这种采样率录制大型音频文件所需的本地存储量。我通过转换成MP3来减少文件大小,采样率为8000。 我读到这本书是只读的。所以我想可以在实例化时设置采样率。我的问题是如何使用javascript更改录音机上的采样率 注意。下面的代码已被裁剪以显示感兴

嗨,我在浏览器上有一个可用的语音录音机。它实现了navigator.getUserMedia和AudioContext 它以.wav格式录制声音,然后转换成.mp3并上传文件

文件采样率设置为44100Hz,mp3输出重新采样为8000Hz。问题在于以这种采样率录制大型音频文件所需的本地存储量。我通过转换成MP3来减少文件大小,采样率为8000。 我读到这本书是只读的。所以我想可以在实例化时设置采样率。我的问题是如何使用javascript更改录音机上的采样率

注意。下面的代码已被裁剪以显示感兴趣的部分

    try{
    window.AudioContext = window.AudioContext || window.webkitAudioContext;
    navigator.getMedia = ( navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia);
    window.URL = window.URL || window.webkitURL;
    audioCtx = new AudioContext;
    var buffer = audioCtx.createBuffer(1, 8000, 8000);// this does not work!
    }
    catch (e)
    {
        console.log('unable to create a audiocontext');
        exit;
    }
    navigator.getMedia({audio: true}, startUserMedia, function(e) {
                    console.log('No live audio input: ' + e);}
                );
    function startUserMedia(stream) {
        var input = audioCtx.createMediaStreamSource(stream);
        console.log('Media stream created.' );
        console.log("input sample rate " +input.context.sampleRate);
        input.connect(audioCtx.destination);
        console.log('Input connected to audio context destination.');
        recorder = new Recorder(input);
        console.log('Recorder initialised.');
        var mediaStreamSource = audioCtx.createMediaStreamSource(stream);
        var analyser = audioCtx.createAnalyser();
        analyser.smoothingTimeConstant = 0.3;
        analyser.fftSize = 2048;
        var javascriptNode = audioCtx.createScriptProcessor(2048, 1, 1);
        mediaStreamSource.connect(analyser);
        analyser.connect(javascriptNode);
        javascriptNode.connect(audioCtx.destination);
        javascriptNode.onaudioprocess = visualiser(analyser);
    }

这是很久以前的事了,出于兴趣,我最终使用了.ogg格式,这种格式对语音效果很好。