当前位置: 首页 > 知识库问答 >
问题:

HTML5 Web音频API-录制声音临时

东和怡
2023-03-14

我目前正在创建一个HTML5音乐编辑程序。我从录制音频开始。我想出了如何访问microphon等等。“recorder.js”中的代码帮了我很大的忙。

但我想创建一个临时AudioBuffer,而不是写入.wave文件。我从“OnAudioProcess”事件中的inputtbuffer中获取了Float32Array并将它们一起保存在一个Float32Array中。现在我有一个数组的值,让我们假设从3秒的记录。现在我想创建一个Audiobuffer来播放我录制的声音(保存在那个数组中)。

在阅读([Webaudio API Specification])1时,没有找到使用现有的Float32Array创建新的audiobuffer的任何可能性。

也许是我录音做错了,或者我只是在阅读上瞎了眼。我读到的其他问题都是在recorder.js上链接,但我不想先保存一个文件然后再加载它。

有人知道吗?会很棒的。

谢谢大家!

共有1个答案

李康安
2023-03-14

我对javascript很陌生,但我想你的问题和我想要做的是一样的,现在我找到了答案。您不是调用recorder.exportwav函数,而是调用recorder.getBuffer(getBufferCallback)函数,如下所示。希望这能帮上忙。对我有用。

function stopRecording() {
        recorder.stop();
        recorder.getBuffer(getBufferCallback);

    //recorder.exportWAV(function(s) {  
        //source = window.URL.createObjectURL(s);
            //audio.src = source;
        //});
}

function getBufferCallback(buffers) {
    window.newSource = context.createBufferSource();
    window.buffers0 = buffers[0]; /*store the buffers in a variable so you can use them in future*/
    window.buffers1 = buffers[1];

    var newBuffer = context.createBuffer(2, window.buffers0.length, context.sampleRate);
    newBuffer.getChannelData(0).set(window.buffers0);
    newBuffer.getChannelData(1).set(window.buffers1);
    window.newSource.buffer = newBuffer;
    window.newSource.connect(context.destination);
    window.newSource.start(0);
}
 类似资料:
  • 我正在使用OpenSL ES播放音频剪辑。在我的代码中,我有 在插入耳机时强制音频通过扬声器。它工作正常,但我无法控制音量。在播放剪辑时按下音量按钮会使音量搜索栏出现并移动,但音量不会改变。播放前调用或似乎没有帮助。更改我的应用程序之外的任何音量(例如在Android设置中)不会影响播放音量。当没有应用路由时,音量控制在耳机和扬声器上都可以正常工作。 我还尝试使用在另一个答案中找到的代码将音频发送

  • 录制完一个呼出的电话后,我试图播放录制的文件——以确保通话录音按预期工作(我使用“媒体播放器”进行),但没有声音。所以我试图访问手机上的实际文件(只需将手机连接到电脑上并访问它的文件)。当我播放录音时,它的长度是正确的,但同样没有声音。 我错过了什么? 这是我记录电话的方式: 这是结束通话记录的代码: 这是我播放音频文件的方式:

  • 问题内容: 我一直在尝试通过以下代码调整音频片段的音调: http://developer.android.com/guide/topics/media/audio- capture.html 我的猜测是应该使用进行此调整。 http://developer.android.com/reference/android/media/MediaRecorder.html 但是,我不确定调用哪种方法来改

  • 问题内容: 我正在尝试建立一个程序来录制一部分互联网音频流,并将其保存到文件(最好是mp3或wav)。我到处都看过,找不到任何合适的方法来做到这一点。我找到了两个似乎可以工作的不同库(NativeBass和Xuggle),但我都不支持64位Windows。 有谁知道使用Java保存一部分互联网音频流的任何简单方法?(如果重要,则为“音频/ mpeg”流)。 编辑:好的,我发现了一种可行的方法。但是

  • 问题内容: 有谁知道我在哪里可以找到有关如何在Swift应用程序中录制音频的信息?我一直在看一些音频播放示例,但是在实现音频记录方面似乎找不到任何东西。谢谢 问题答案: 这是代码。您可以轻松地进行记录。将此代码写在上。它将按名称保存记录

  • 问题内容: 在我的应用程序中,我想实现在声音发生时记录声音的方法。 与此应用类似的应用:Talking Tom Cat 那我该怎么办?是否有任何演示程序可以监听声音并在发生声音时进行记录? 问题答案: 在您的应用程序中尝试此代码… 有关更多详细信息,您还可以查看此演示… http://musicg.googlecode.com/files/musicg_android_demo.zip