gpt4 book ai didi

javascript - 遵循 API 时出现 Web Audio OfflineAudioContext 语法错误

转载 作者:搜寻专家 更新时间:2023-11-01 04:09:51 25 4
gpt4 key购买 nike

当我尝试执行以下 javascript 行时,Chrome 27 beta 抛出 SyntatxError:

offlineContext = new webkitOfflineAudioContext(2, 7*48000, 48000);

这符合 W3C Recommendation,在网上搜索数小时后,我已经看到许多显然适用于这种确切形式的示例。我知道 API 可能会发生变化,但我找不到任何提示。我哪里错了?

奇怪的是,当我在 jsfiddle 中尝试时它并没有失败。我什至尝试在 jsfiddle 中运行这个片段所在的整个函数,删除几个项目。以下是我要运行的功能。执行函数时指示的位置出现“SyntaxError Dom Exception 12”。

我有一个可用的音频应用程序,我只是想添加后台处理以便稍后使用 OfflineAudioContext 进行渲染。如果我在我的 init 函数中定义 OfflineAudoiContext,我不会在那里得到语法错误。但我需要在 createRenderData() 函数中定义它,因为我需要为每个媒体源设置长度和采样率,如果我调用不带参数的 OfflineAudioContext 构造函数,我会得到一个 TypeError。此外,我在 API 中看不到任何方式来设置现有 OfflineAudioContext 的长度和采样率。

AudioUI.createRenderData = function() {
var url = BGAudioUI.renderQueue.pop();
if (url) {
BGAudioUI.media = new Audio(url);
BGAudioUI.media.addEventListener('durationchange', function() {
console.log("background duration: " + BGAudioUI.media.duration);
BGAudioUI.duration = BGAudioUI.media.duration;
//BGAudioUI.allData = new Float32Array(Math.floor((AudioUI.context.sampleRate.toFixed() / AudioUI.downsampleFactor.toFixed() * BGAudioUI.duration)) + 1);
//console.log("calculated sample rate: " + Math.floor(AudioUI.context.sampleRate / AudioUI.downsampleFactor.toFixed()));
//console.log("duration: " + BGAudioUI.duration);
BGAudioUI.offlineContext = new webkitOfflineAudioContext(2, 7*48000, 48000); //SyntaxError DOM Exception 12 occurs here
BGAudioUI.mediaSource = BGAudioUI.offlineContext.createMediaElementSource(BGAudioUI.media);
BGAudioUI.offlineContext.oncomplete = function(buffer) {
data = buffer.getChannelData(0);
console.log(data.length + " records processed offline");
};
BGAudioUI.offlineContext.startRendering();
BGAudioUI.media.play();
console.log("created background media source for " + BGAudioUI.media.src);
}, false);
BGAudioUI.media.load();
console.log("created background media object for " + BGAudioUI.media.src);
} else {
alert("Background rendering complete");
}
};

最佳答案

所以问题是 OfflineAudioContext 的采样率需要设置为与常规 AudioContext 相同的值。 Chris Rogers 将研究解决这个问题,我在使用 OSX Chrome(测试版和稳定版)时遇到了这个问题,但在 CentOS 上运行的 Fedora Chrome(仅经过测试的稳定版)却没有。但是将两个音频上下文设置为相同的采样率,现在一切正常。

关于javascript - 遵循 API 时出现 Web Audio OfflineAudioContext 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16454429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com