问题标签 [directsound]

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 回答
586 浏览

c# - Directsound:如何使用 SecondaryBuffer(Stream,BufferDescription,Device) 构造函数创建辅助缓冲区?

我正在尝试创建一个静态辅助缓冲区,它从数组而不是文件接收声音数据。所以我想使用SecondaryBuffer(Stream,BufferDescription,Device)构造函数,但我不知道该怎么做。谁能给我看一个c#的例子?

0 投票
1 回答
680 浏览

naudio - 重采样例外

当我使用ResamplerDmoStream并选择除WaveOutput之外的任何内容(例如WASAPIDirectSound)时,我遇到以下异常:无法将 COM 对象NAudio.DMO.ResamplerMediaComObject转换为接口类型Naudio.Dmo.IMediaObject...

异常调用堆栈:

0 投票
1 回答
273 浏览

windows - 关于DirectSoundFullDuplexCreate8的两个问题

我正在使用 DirectSoundFullDuplexCreate8 进行录制,并且在某些情况下,在 Win 7 下播放。我有几个问题。

一个非常简单——FullDuplex 可以与所有音频硬件一起使用吗?在某些情况下,我们将使用不同的设备进行录制和播放。到目前为止,这似乎可行,但如果有些机器不支持全双工的 Win 版本,我们可以自己推出。

另一个可能是一个愚蠢的问题,但我不明白如何设置事件通知进行记录。这是到目前为止我得到的代码,但我不知道如何开始录制或如何设置,以便我可以将正在录制的数据复制到其他缓冲区,包括播放缓冲区:

接下来是什么?我假设我使用:

开始捕获,但我没有看到任何关于如何设置在积累了适量的数据时激活的 DS 事件处理函数的参考。

0 投票
1 回答
391 浏览

c# - 我可以在 VS2010 上使用 Directsound 在 Window8 操作系统上使用 C# 吗?

我试图安装 xna 4.0 但在 windows8 上出现了一些错误。

我可以将哪个版本的 Directx SDK 用于 C#?

我还尝试安装 DXSDK_Jun10,但是在 .net 文件夹中找不到任何参考。

0 投票
1 回答
214 浏览

.net - Mono 是否支持 DirectSound?

我正在.NET2.0(我必须支持旧设备)中编写一个将使用 DirectSound 的应用程序。我可能需要将代码库移植到 Mono 以在某些 Linux 设备上运行。当我尝试这样做时,有没有人知道对 DirectSound 的引用可能会发生什么?

也许有一个我没有遇到过的符合 Mono 的场景。

提前致谢。

0 投票
2 回答
1566 浏览

c++ - 内存转储分析(应用程序挂起)

我正在尝试分析在我的应用程序发生挂起后从我的一位最终用户那里收到的内存转储。它似乎与我的应用程序的音频播放部分有关。我相信这涉及到两个线程,即将开始播放声音的主线程,以及迭代链表中的声音以不断更新其状态的更新线程。但是,我不明白挂起的原因可能是什么。

我的 WinDbg 知识有限,但我设法弄清楚挂起似乎发生在音频库的 SetLoop 方法中(特别是在静态声音代码中)。我使用 DirectSound,在这种情况下,应用程序在 Windows 7 32 位上运行(我自己在 XP 上开发,我从来没有遇到过这样的问题)。静态声音类在检查声音是否正在播放之前锁定关键部分,如果不是,则将循环标志设置为真或假。在这种情况下,主线程正在调用 SetLoop 将其设置为 false,因为它希望以非循环状态播放声音。我可以看到,在挂起时,主线程被困在对 ntdll.dll 中的 EtwEventEnabled 的调用中,这显然是由静态声音类的 SetLoop 方法完成的。我想知道它是否卡在 EnterCriticalSection 调用中,或者当它调用 DirectSound 的 GetStatus 方法用于辅助缓冲区时,它是否卡在了更远的地方?这是我对内存转储分析的了解不足的地方,如果有人愿意花时间查看转储,我将不胜感激。

这是转储的链接,带有应用程序特定的符号: https ://dl.dropbox.com/u/5121962/hangdump.zip

非常感谢您的任何帮助。

0 投票
1 回答
1377 浏览

c# - 如何选择声音设备来播放声音?

我的表单中有一个网络浏览器,我想选择我想听声音的地方。我有 2 个播放设备,扬声器和耳机。

我想制作一个组合框来选择我的表单/应用程序声音的输出。

我正在阅读有关 NAudio 和 DirectSound 的信息,但找不到有用的东西。

我不想播放声音,我想选择我的控件的所有声音的输出。

任何人都对.Net(c#)有所了解吗?

0 投票
1 回答
541 浏览

stream - Directsound流同步

我对 2 个 Directsound 流的同步有疑问。

为了录制和播放声音,我目前使用 Portaudio 打开 2 个 Directsound 流。每次输入缓冲区被填满并且输出缓冲区需要数据时,都会调用 2 个回调函数。

现在这是我的问题...

输入流以 48kHz 采样率运行(@1024 个样本)。输出流以 192kHz 采样率运行(@4096 个样本)。每次输入缓冲区被填满并调用回调时,我都会做一些 DSP,然后将结果转换为 192kHz。输出流获取结果并输出数据。现在这两个流完全不同步了。

我查看了整个 Portaudio API,但找不到将 2 个流锁定在一起的同步选项。

有什么方法可以锁定 2 个 Directsound 流吗?我真的需要 48kHz 输入和 192kHz 输出。

溴,

文森特·布鲁因克。

0 投票
0 回答
760 浏览

c# - 值不在 Microsoft.DirectX.DirectSound 中的预期范围内;

我正在使用托管代码开发音乐播放器,并且正在使用 Microsoft.DirectX.DirectSound。当我调用 play 方法时,我收到此错误“值不在预期范围内”。因此,问题仅适用于 24 位 WAV 文件。这就是例外的原因。对于 16 位文件工作正常。任何想法如何使它也适用于 24 位文件?

谢谢!

0 投票
0 回答
835 浏览

visual-studio-2010 - 应用程序在 Visual Studio 中工作,但发布/调试 exe 不能

我正在使用dx11. 当我在 Visual Studio 中编译和运行代码时,它可以正常工作,但是如果我尝试从调试或发布文件夹中的 .exe 文件运行代码,则会出现以下错误:

我根本没有移动文件夹/目录。

这与直接声音不兼容有关dx11吗?如果是这样,为什么它仍会在 Visual Studio 中运行。

我正在使用 MS Visual Studio 10。我的直接声音类具有以下内容:

提前谢谢