gpt4 book ai didi

javascript - 无法使用 Web Audio API 获得 5.1/环绕声

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:30:04 25 4
gpt4 key购买 nike

我看到的所有地方都表明 5.1/surround 支持应该在现代网络音频 API 中,但我没有做任何事情让它在 Firefox 40 或 Chrome 上工作(不确定 Chrome 版本,但它应该是最新的/最新的,并且它在任何一种浏览器中都不起作用这一事实向我表明这不是 Chrome 特定的问题。)

我的设置

Creative Sound Blaster Omni 5.1 连接到典型的 5.1 桌面扬声器组。 Windows 10。我可以通过环绕声道成功播放 MP4 音频。同样,基于 DirectX 的环绕声游戏似乎也能正常工作。

我在尝试什么

编写一个基于 Crafty 的 JS 游戏,主要在 Firefox 上开发。我目前有一个小型 2-D 世界,有一排平移器节点在低端附近播放冲浪。在立体声中,我可以在这个世界上四处走动,并在我转身和移动时听到断路器改变位置。连接我的 5.1 扬声器后,没有任何变化。也就是说,尽管我在其他情况下体验过环绕声,但行为与立体声中一样。

audioContext.destination.maxChannelCount 是 6,因此 Firefox 似乎正确检测到我的 channel 。我已尝试在所有可能的情况下显式设置 channelCount,这可以正常工作,但平移器除外,它给出了“不支持的操作”错误。我想知道这是否是我的问题,但我不知道为什么它在其他任何地方都有效,所以我想知道我是否在分配 channel 方面过于热心。

总之,这是我用于初始化声音的一些 Crafty 组件。它们在 LiveScript 中,但希望应该易于理解:

_initContext: ->
return @_context if @_context?
audioContext = window.AudioContext||window.webkitAudioContext
if audioContext?
@_context = new audioContext()
@_context.destination.channelCount = if@_context.destination.maxChannelCount >= 6
6
else
2
@_context.destination.channelCountMode = "explicit"
@_masterGain = @_context.createGain()
@_masterGain.channelCount = @_context.destination.channelCount
@_masterGain.channelCountMode = "explicit"
@_masterGain.connect(@_context.destination)
@_context
...
context = Crafty.sound._initContext()
return unless context?
@_gain = context.createGain()
@_gain.channelCount = context.destination.channelCount
@_gain.channelCountMode = "explicit"
@_gain.connect(Crafty.sound._masterGain)
@_panner = context.createPanner()
@_panner.channelCount = context.destination.channelCount # Fails
@_panner.connect(@_gain)

感谢您的帮助。

最佳答案

想通了。看起来 PannerNode 仅限于立体输出,鉴于此 API 中的所有 3-D/空间功能,这令人困惑。同样不明显的是 PannerNode 的 2 channel 限制将导致在目的地只有 2 个 channel (即它可能以某种方式处理每个源最多 2 个 channel ,但将它们定位在我的 6 个 channel 中在目的地分配。)显然可以输出多个 channel ,但不能使用这些接口(interface)。也许使用自定义 API...

多么令人不快。

关于javascript - 无法使用 Web Audio API 获得 5.1/环绕声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32191269/

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