繁体   English   中英

Javascript Web音频API-AudioContext到base64

[英]Javascript Web Audio API - AudioContext to base64

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

如果您具有较快的Internet速度,则此方法效果很好,但如果速度较慢,则从服务器返回曲目最多可能需要一个小时,因此现在我们在客户端应用过滤器。

应用过滤器没问题,但是我试图不重写我的整个播放算法(这不仅涉及暂停,播放,停止),而且还想知道是否可以将AudioContext编码为Base64。

我已尝试创建一个新的Audio并传递AudioContext ,创建一个新的Audio并传递AudioBuffer以及基于此示例的内容 但是,如果它能奏效的话就没有办法了,我找不到我想在互联网上做什么的任何例子。

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

    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 ,您可以使用该音频AudioBuffer来获取base64编码的音频结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM