Javascript Web 音频 API - AudioContext 到 base64

标签 javascript audio base64 web-audio-api

在我正在进行的项目中,我们有大约 30 个音轨,我们在其中应用过滤器并播放音频。最初这是在服务器端完成的,并为每个轨道返回一个 base64 字符串,然后我用 new Audio() 加载它.

如果您的互联网速度很快,这很有效,但在速度较慢的情况下,从服务器返回轨道可能需要一个小时,所以现在我们在客户端应用过滤器。

应用过滤器没有问题,但我试图不重写我的整个播放算法(它比暂停、播放、停止更复杂)并且想知道我是否可以编码 AudioContext到 Base64。

我尝试创建一个新的 Audio并通过 AudioContext , 创建一个新的 Audio并通过 AudioBuffer以及基于 this example 的东西.但是,如果它有效,我无法在互联网上找到任何我正在尝试做的事情的例子。

如果有人可以查看我的代码并帮助我,我将不胜感激。提前致谢!

    var audioCtx = new AudioContext();
    var source = audioCtx.createBufferSource();
    var request = new XMLHttpRequest();
    request.open("GET", "/path/to/audio", true);  
    request.responseType = "arraybuffer";
    request.onload = function () {
        audioCtx.decodeAudioData(request.response, function (buffer) {
            source.buffer = buffer;

            // Apply filters to the audio

            // Here I would like to convert the audio to Base64
            callback(source);
        }, function (error) {
            console.error("decodeAudioData error", error);
        });
    };
    request.send();

最佳答案

从您提供的代码段中确切知道您想要什么有点困难,但根据代码段,您也许可以使用 OfflineAudioContext如果你知道你的音频文件有多长。离线上下文将返回 AudioBuffer然后您可以使用它来获取 base64 编码的音频结果。

关于Javascript Web 音频 API - AudioContext 到 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53270013/

相关文章:

javascript - AJAX 中的 XPath 和通配符

javascript - 拼接和移位功能在递归中无法按预期工作

c# 相当于 clojure 中的 base64 + UrlTokenEncode

c# - 从 X509Certificate 对象导出私钥

javascript - 图片转Base64

javascript - 制作响应式 D3 分层条形图并显示工具提示

javascript - 如何在AG-Grid中设置列的动态字段?

audio - 改变wav文件的长度

java - 无法同时播放声音

java - 如何播放.mp3而不是.wav?