【问题标题】:Javascript Web Audio API - AudioContext to base64Javascript Web 音频 API - AudioContext 到 base64
【发布时间】:2018-11-12 20:59:03
【问题描述】:

在我正在进行的项目中,我们有大约 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();

【问题讨论】:

    标签: javascript audio base64 web-audio-api


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 2016-11-22
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多