Safari上的AudioContext问题

Gar*_*yle 7 typescript webkitaudiocontext audiocontext angular5

我正在尝试在Angular 5应用的打字稿文件中使用AudioContext。它在Chrome上运行良好,在Safari上不运行。我通过谷歌搜索看到的所有内容都说可以使用,window.webkitAudioContext但是当打字稿编译器运行时说它在Window类型上不存在时,它立即崩溃。

let context = new AudioContext();
let source = context.createBufferSource();
context
    .decodeAudioData(event.body)
    .then(x => {
        source.buffer = x;
        source.connect(context.destination);
        source.start(0);
    });
Run Code Online (Sandbox Code Playgroud)

cyr*_*r_x 6

您应该扩展Window接口,然后扩充窗口对象。

假设您正在使用angular-cli,请将以下内容添加到您的typings.d.ts文件中:

declare interface Window {
  AudioContext: AudioContext;
}
Run Code Online (Sandbox Code Playgroud)

然后在您的polyfills.ts文件中,您可以设置AudioContext属性:

window.AudioContext = window.AudioContext || window.webkitAudioContext;
Run Code Online (Sandbox Code Playgroud)