[英]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.