录制html5音频

Tho*_*ell 9 javascript html5-audio

是否可以使用html5录制声音?我已经下载了最新的金丝雀版Chrome并使用以下代码:

navigator.getUserMedia = navigator.webkitGetUserMedia || navigator.getUserMedia; navigator.getUserMedia({audio:true},gotAudio,noStream);

然后,这会提示用户允许录音,如果您说"是",则会显示一条消息,说明正在录制Chrome.但是可以使用原始数据访问音频缓冲区吗?我似乎无法弄清楚如何.有建议的规格还没有实现,但有人知道它现在是否可以在任何浏览器上实现,并提供说明?

sin*_*dam 2

在这里您可以找到我的示例,但它不起作用(部分)。因为 chrome 还没有实现音频录制。这就是为什么你会收到 404 错误,即找不到 BLOB。

下面还有一个表格,因为我的目标是将 BLOB 发送到 php 文件,但由于不起作用,我无法尝试。保存一下,以后可以用。

<audio></audio>
<input onclick="startRecording()" type="button" value="start recording" />
<input onclick="stopRecording()" type="button" value="stop recording and play" />
<div></div>
<!--
<form enctype="multipart/form-data">
<input name="file" type="file" />
<input type="button" value="Upload" />
</form>
-->

<script>
  var onFailed = function(e) {
    console.log('sorry :(', e);
  };

window.URL = window.URL || window.webkitURL;
navigator.getUserMedia  = navigator.getUserMedia || navigator.webkitGetUserMedia ||
                          navigator.mozGetUserMedia || navigator.msGetUserMedia || 
var localStream

var audio = document.querySelector('audio');
var stop = document.getElementById('stop');


    function startRecording(){
        if (navigator.getUserMedia) {
          navigator.getUserMedia({audio: true, video: false, toString : function() {return "video,audio";}}, function(stream) {
            audio.src = window.URL.createObjectURL(stream);
        document.getElementsByTagName('div')[0].innerHTML = audio.src;
            localStream = stream;
          }, onFailed);
        } else {
            alert('Unsupported');
          //audio.src = 'someaudio.ogg'; // fallback.
        }
    }



    function stopRecording(){
        localStream.stop();
        audio.play();
    }


    function sendAudio(){

    }
</script>
Run Code Online (Sandbox Code Playgroud)

注意:Firefox 的一些信息和操作方法:https://hacks.mozilla.org/2012/07/getusermedia-is-ready-to-roll/