首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用`RecordRTC.js`向后端发送音频

无法使用`RecordRTC.js`向后端发送音频
EN

Stack Overflow用户
提问于 2017-12-24 11:45:28
回答 1查看 332关注 0票数 2

我正在使用RecordRTC.js发送音频到后端。但我做不到。甚至找不到原因。

我的代码:

//捕捉麦克风

代码语言:javascript
复制
captureMicrophone(callback) {
    navigator.mediaDevices.getUserMedia({ audio: true })
    .then(callback)
    .catch( (error)=> {
        alert('Unable to access your microphone.');
        console.error(error);
    });
}

//开始录音

代码语言:javascript
复制
startRecording () {
    this.captureMicrophone( (microphone) => {
        let audio = document.querySelector('audio');
        window['setSrcObject'](microphone, audio);
        audio.play();
        this.recorder = window['RecordRTC'](microphone, {
            type: 'audio',
            recorderType: window['StereoAudioRecorder'],
            desiredSampRate: 16000
        });
        this.recorder.startRecording();
        // release microphone on stopRecording
        this.recorder.microphone = microphone;
        (<HTMLInputElement> document.getElementById('btn-stop-recording')).disabled = false;
    });
};

//停止录音

代码语言:javascript
复制
stopRecording () {
    (<HTMLInputElement> document.getElementById('btn-stop-recording')).disabled = false;
    this.recorder.stopRecording(() => {
        this.audio = document.querySelector('audio');
        var blob = this.recorder.getBlob();
        this.audio.src = URL.createObjectURL(blob);
        this.audio.play();
        this.recorder.microphone.stop();
    });
};

//这是将数据发送到HTTP服务以调用后端

代码语言:javascript
复制
sendMMS() {
    var fileType = 'audio'; // or "audio"
    var fileName = 'abcde.wav';  // or "wav"
    let formData = new FormData();
    formData.append('filename', fileName);
    formData.append('data', this.audio.src);
    this.bsService.sendMMS(formData);
}

打电话去了。但在后端,null将作为数据出现。我认为附加数据有问题。我尝试了很多来自StackOverflow的解决方案。但是没有成功。

请帮帮我。

谢谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-24 12:16:05

请试试这个:

代码语言:javascript
复制
sendMMS() {
    var fileType = 'audio'; // or "audio"
    var fileName = 'abcde.wav';  // or "wav"
    let formData = new FormData();
    formData.append('filename', fileName);
    formData.append('data', this.recorder.getBlob()); // --------- check this line
    this.bsService.sendMMS(formData);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47960307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档