【问题标题】:how can i use web audio api with offscreen canvas?如何使用屏幕屏幕使用Web Audio API?
【发布时间】:2021-08-30 05:05:38
【问题描述】:

众所周知,我们无法从工作人员访问 dom 元素。当我创建 AudioContext 时:

var audioCtx = new (canvas.AudioContext || canvas.webkitAudioContext)();

我明白了:

Uncaught ReferenceError: window is not defined

有没有办法解决这个问题?

【问题讨论】:

    标签: javascript web-audio-api web-worker offscreen-canvas


    【解决方案1】:

    还没有。 Here is a specs issue正在讨论这个问题,这是很多演员都希望看到的,所以有希望,有一天。

    请注意,有一个可用的AudioWorklet API,它将创建自己的 Worklet(也可以在并行线程中工作),但您仍然需要从 UI 线程实例化它,并且您无权访问可以在 AudioContext 中完成的所有事情。不过,它可能会满足您的需求。

    另外,请注意,通过将 ArrayBuffers 从您的 UI 线程转移到 Worker 的线程,或者使用 SharedArrayBuffers,您可能已经在 Worker 中进行了计算。

    【讨论】:

    • 澄清:这里的“Worklet”不是developer.mozilla.org/en-US/docs/Web/API/Worklet。 OfflineAudioContext 不会创建这个。它基本上只是一些对象,它将在自己的线程中呈现音频图,与任何其他线程分开,并且旨在比实时运行得更快。
    • @RaymondToy 哦,天哪,感谢您的提醒!我这里完全混合了 OfflineAudioContext 和 AudioWorklets,我想说的是后者……
    猜你喜欢
    • 2012-04-20
    • 2013-07-25
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多