目前,您仍需要一些JavaScript解决方法来创建音频上下文.
就像是
var AudioContext: JAudioContext;
procedure InitializeAudioContext;
begin
asm
// Fix up for prefixing
window.AudioContext = window.AudioContext||window.webkitAudioContext;
if('webkitAudioContext' in window) {
@AudioContext = new webkitAudioContext();
}
end;
end;
注意:单元w3c.WebAudio基本上只是W3C API的包装器,不包含用于初始化音频上下文的代码.到目前为止,必须在代码中完成此操作(如上所示).
对于未来,我们计划进行更高级别的抽象.
即将发布的2.1版本将包含另一个关于Web Audio API和改进的“Sine Generator”示例的特色示例.计划于4月/ 5月发布.
更新1:
或者,您可以使用以下代码实例化您的上下文:
AudioContext := new JAudioContext;
但是,它不适用于较旧的基于webkit的浏览器.这些需要额外的webkit前缀.
在这种情况下,像:
type
JWebkitAudioContext = class external 'webkitAudioContext' (JAudioContext);
AudioContext := new JWebkitAudioContext;
会工作.
出于兼容性原因,您可能需要检查前缀是否必要.或者只使用上面发布的“asm”片段.
更新2:
Eric刚给我写了一封关于如何检查Pascal代码的电子邮件.虽然它仍然有点难看,但它避免了asm部分.
首先声明webkitAudioContext,然后检查它是否已分配:
var webkitAudioContext external 'webkitAudioContext' : JwebkitAudioContext;
var hasWebkitAudio := Boolean(Variant(webkitAudioContext));