问题标签 [xaudio2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
104 浏览

audio - 如何使用 2D Stereo Mp3 文件在 FMOD 中获得独立的左/右通道延迟?

我正在尝试在播放之前独立设置输入 MP3 文件的左右声道的延迟。我想以 2ms 的延迟播放左声道,以 10ms 的延迟播放右声道,因此声道之间的总延迟将为 8ms,而不是 Mp3 音频的左右声道之间的 0ms 延迟。

我正在测试的一些示例代码 -</p>

在这里,我只有一个播放声音的通道,虽然它可以用单独的通道以立体声播放,那么如何延迟正在播放的实际通道呢?

FMOD可以做到吗?有人可以指出我可以使用的一些代码或参考吗?非常感谢!

0 投票
1 回答
437 浏览

c++ - 为什么 XAudio2 只有在系统暂停时才播放 .wav 文件?

我已经按照微软网站上的教程进行操作,并创建了自己的 SoundEngine 和 Sound 类结构,以便在 main 中抽象出代码,但是每当我拨打诸如 之类的电话时batmanWav->play(),它只会在我编写std::cin.get()system("PAUSE")

为什么是这样?我将尝试将其移植到已经开发的游戏中,但我显然不希望每次播放声音时游戏都停止。

编辑:我被要求显示一些有问题的代码

声音.cpp

对于每个 Sound 对象,我初始化了一个源声音,每个声音都指向相同的母带声音和IXAudio2 *pXAudio2对象。我用来加载波形文件数据的代码直接取自 MSDN 文档。

0 投票
1 回答
127 浏览

windows - AUDIO_STREAM_CATEGORY 需要多个 XAudio2 实例?

在适用于 Windows 8 和 10 的较新 XAudio2 API 中,anAUDIO_STREAM_CATEGORY被传递给IXAudio2::CreateMasteringVoice.

文档继续说明如何将这些用于不同类型的音频。然而 anIXAudio2只允许一个主声音。要做到这一点是完全独立的IXAudio2实例以及所需的所有相关接口,还是可以通过某种方式在音频图中的其他地方指定类别?

游戏应将其音乐流分类为AudioCategory_GameMedia,以便在另一个应用程序在后台播放音乐时游戏音乐自动静音。音乐或视频应用程序应将其流分类为AudioCategory_MediaAudioCategory_Movie,以便它们优先于AudioCategory_GameMedia流。游戏内过场动画或过场动画的游戏音频,当音频被预混或出于创意原因应优先于背景音频时,也应归类为媒体电影

0 投票
1 回答
90 浏览

c++ - 使用 IXAudio2 播放混音?

我写了一个 MFC 项目。我使用 IXAudio2 播放 wav 文件。我的代码是这样的:

但这样我一次只能播放一个声音。它必须等待这个.wav文件播放完毕。我可以播放第二个文件。如何播放我需要的文件而不是等待第一个结束,喜欢混合声音?我怎样才能实现这个功能?

0 投票
1 回答
352 浏览

c# - SharpDX XAudio2:6 SourceVoice 限制

几天来,我一直在玩 SharpDX.XAudio2,虽然事情在很大程度上是积极的(这里和那里奇怪的软件怪癖),但以下问题让我完全陷入困境:

我正在使用 VS2015 在 C# .NET 中工作。
我正在尝试同时播放多个声音。

为此,我做了:
- Test.cs:包含主要方法
- cSoundEngine.cs:包含 XAudio2、MasteringVoice 和声音管理方法。
- VoiceChannel.cs:保存 SourceVoice,以及将来的任何 sfx/相关数据。

cSoundEngine:

测试.cs:

目前在 VoiceChannel.cs 中没有任何值得展示的内容 - 它包含“SourceVoice source”,这是构造函数中发送的一个参数!

一切都很好,运行良好,最多有 5 种声音(总计 = 5)。您所听到的只是 Planet.wav 的幸福无人机。但是,任何高于 5 的值都会导致控制台冻结约 5 秒,然后关闭(可能是调试器无法处理的 c++ 错误)。可悲的是,没有错误信息可供我们查看或其他任何内容。
来自测试:
- 只要您没有超过 5 个正在运行的源语音,就不会崩溃。
- 改变采样率似乎没有帮助。
- 将主对象的 inputChannels 设置为不同的数字没有区别。
- MasteringVoice 似乎说输入声音的最大数量是 64。
- 从不同的 wav 文件中播放每个 sfx 没有区别。
- 为 sourcevoices 和/或 master 设置音量没有区别。

XAudio2 API 文档中,我发现了这句话:'XAudio2 消除了多声道声音的 6 声道限制,并在任何支持多声道的声卡上支持多声道音频。该卡不需要硬件加速。. 这是我找到提到这个问题的最接近的东西。

我对 sfx 的编程经验并不丰富,其中很多对我来说都很陌生,所以请在适当的时候称我为白痴,但请尝试用外行的方式解释事情。

请,如果您有任何想法或答案,他们将不胜感激!
-乔什

0 投票
2 回答
540 浏览

c++ - DirectX SDK 2010 年 6 月:XAudio2 在每次应用退出时崩溃

我正在开发基于 Direct3D 9 和 XAudio 2.7 的 C++ 游戏引擎。每次退出测试游戏时我都会遇到同样的问题:XAudio 崩溃。我确定是这个特定的组件导致了问题,因为当我删除对初始化的调用时,游戏退出没有任何问题。

例外箱

我不知道为什么,我已经设置了所有基本代码(初始化、掌握语音、音频组件、清除所有缓冲区并使用 ->Release(); 关闭),尝试使用和不使用 XAudio 3D...

如果您已经经历过,欢迎您提供帮助。谢谢。

我正在运行 Windows 10 Pro 64 位

代码 :

0 投票
1 回答
219 浏览

c++ - C++ WinRT - XAudio2 是否支持 Xbox One 平台?

XAudio2 是否支持 Xbox One?下面的链接提到它仅适用于桌面应用程序。

https://docs.microsoft.com/en-us/windows/desktop/xaudio2/how-to--load-audio-data-files-in-xaudio2

如果不支持,哪些 UWP 音频 API 可用于 Xbox One?

0 投票
0 回答
60 浏览

audio - DirectXTK make_unique(标志)失败

我正准备用我的游戏引擎发布我的第一个小游戏。但是,通过让一些人对其进行测试,我们发现我的一位测试人员调用获取指向 AudioEngine 接口的指针失败。

该呼叫在我的台式机和笔记本电脑上都可以正常工作,并且在测试仪 2 的计算机上也可以正常工作。但是,测试人员 1 的计算机将无法成功调用。

“失败”是指它抛出一个异常,我正在使用 try/catch 块处理该异常。异常的“什么”只是告诉我“AudioEngine”所以没有帮助。他有一台高度定制的计算机,它使用两个未链接的显卡并处理单独的任务。他使用我在桌面上设置的相同虚拟音频电缆(用于分隔语音源以便于视频编辑:流媒体/游戏录制)。

如果有人知道可能导致此调用失败的任何线索,我们将不胜感激。如果您需要任何其他信息,请告诉我。初始化代码如下:

更新:一整天都在尝试东西,到目前为止没有运气。-让 Tester 下载 2010 年 6 月的 DirectX DLL 并安装它们并重新启动计算机。-让他们更新所有驱动程序。- 让他们检查他们的系统文件夹(所有 XAudio2_#.dll 文件都存在)。- 他们有 Windows 10

0 投票
1 回答
747 浏览

c++ - “此版本的 XAudio2 仅在 Windows 8 中可用”Windows 10 环境中的错误

我想在 Windows 10 的 Qt 应用程序中使用 xaudio2 库。我将 Qt creator 4.9.2 用作 IDE,并与 MinGW 7.3.0 编译器结合使用。据我所知,xaudio2 是 Windows SDK 的一部分,从 Win8 开始。我从这个页面获得了最新的 SDK 版本并将其安装在我的工作站上。我通过在我的 .pro 文件中添加以下行来导入这个库:

并在我的来源中包含所需的定义,如下所示:

但是当我尝试编译我的应用程序时,会出现以下错误:

我无法理解,为什么编译器不会将我的系统识别为 Win10,而是将其识别为 Win7。我还发现,这个 SDK 版本中只有 xaudio2_8.lib,但是 AFAIK,xaudio2_9.lib 应该在 Win10 上使用。

有人可以帮我解决这个问题吗?

0 投票
1 回答
909 浏览

c++ - XAudio2 与 OpenAL 音量

我正在用 C++ 编写一段音频包装代码,以便在 XAudio2 和 OpenAL 上拥有一个抽象 API(以及稍后的更多内容)。一切正常,我的系统启动并运行,提供几乎相同的音频。

我似乎只有设置源卷有问题。XAudio2 和 OpenAL 都有一种方法来设置源声音的音量。

IXAudio2Voice::SetVolume(volume) 和 alSourcef(source, AL_GAIN, volume);

根据文档,两个函数都采用音量参数应该在 [0;1] 范围内设置级别。

但是,他们内部使用的曲线似乎不匹配。例如,当将值设置为 0.5 时,感觉就像 OpenAL 比 XAudio2 更安静

就像其中一个会线性地解释音量,而另一个就像对数一样。两个文档都没有说明它,只是说明范围是 [0;1] 并且没有说明它是如何解释的。

很难调试,因为它很难测量。有人做过这样的事情,或者有使用这些功能的经验吗?

谢谢你。

拉奇