使用 HTML5/Flash 录制音频并上传(到服务器)

spy*_*yfx 3 html javascript flash audio jquery

我知道某些浏览器不支持 getUserMedia(),因此我必须或多或少地使用基于 Flash 的录音机。通过 POST 将捕获的音频上传到服务器对我来说非常重要,即使我可以访问客户端捕获的音频也会非常棒。那么你们知道有一个库/插件/扩展可以做到这一点吗?

我还发现了一些脚本,例如:
https://github.com/mattdiamond/Recorderjs
https://github.com/jwagener/recorder.js/

但上传不起作用。我不知道我该如何继续。

Rem*_*ota 5

您可以将记录的数据保存为 blob,然后使用 FileReader 通过 AJAX 的 POST 上传数据。

类似的事情是这样的:

function uploadAudio(mp3Data){
    var reader = new FileReader();
    reader.onload = function(event){
        var fd = new FormData();
        var mp3Name = encodeURIComponent('audio_recording_' + new Date().getTime() + '.mp3');
        console.log("mp3name = " + mp3Name);
        fd.append('fname', mp3Name);
        fd.append('data', event.target.result);
        $.ajax({
            type: 'POST',
            url: 'upload.php',
            data: fd,
            processData: false,
            contentType: false
        }).done(function(data) {
            //console.log(data);
            log.innerHTML += "\n" + data;
        });
    };      
    reader.readAsDataURL(mp3Data);
}
Run Code Online (Sandbox Code Playgroud)

此代码直接取自 gitHub 项目 Recordmp3js,此处可用: https: //github.com/nusofthq/Recordmp3js

它仅使用 HTML5 和 JS 录制音频并将其保存为 MP3 格式,然后将数据上传到网络服务器上。

但它仅适用于 Chrome 和 Firefox。