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

时间:2014-01-26 16:41:28

标签: javascript jquery html5 flash audio

我知道在几个浏览器中不支持getUserMedia(),因此我必须使用或多或少的基于闪存的录音机。通过POST将捕获的音频上传到服务器非常重要,即使我可以访问客户端捕获的音频也非常棒。所以你们知道一个libary / plugin / extension这样做吗?

我发现了一些脚本也是如此:
https://github.com/mattdiamond/Recorderjs
https://github.com/jwagener/recorder.js/

但上传无效。我不知道如何继续。

1 个答案:

答案 0 :(得分:4)

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

类似的东西:

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);
}

此代码直接取自此处提供的gitHub项目Recordmp3js: https://github.com/nusofthq/Recordmp3js

它使用HTML5和JS记录音频并保存MP3格式,然后在网络服务器上传数据。

它仅适用于Chrome和Firefox。

相关问题