问题标签 [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 投票
1 回答
3096 浏览

c# - DirectSound 定时和采样计数

我正在使用 DirectSound 将正弦波写入声卡。样本大小为 16 位,一个通道。我的问题是,发出五秒钟的声音需要多少样本?采样率为每秒 44100 个样本。数学很简单:220500 就是答案。不过,这让我发疯了,因为我的代码只播放了大约一半的时间!这是我的代码:

根据我的计算,这应该播放 5 秒。它播放半场。如果我改变

然后声音工作正常,但这是一个黑客,对吧?当然我做错了什么,但我不知道是什么。

谢谢你的时间。

0 投票
1 回答
868 浏览

c# - DirectSound:将音量设置为百分比

SecondaryBuffer类中的Volume-Property似乎很奇怪,因为-4000左右的值是0%,0是100%,我怎样才能将Volume设置为精确的百分比或获得最低的Volume来自己做呢?

0 投票
1 回答
792 浏览

windows-7 - DirectSoundEnumerate() 未在 Windows 7 上列出驱动程序名称

我有一个在 Windows XP 上编译的程序,现在我正试图在 Windows 7(x86 和 x64)上运行它。该程序使用 DirectSound8 枚举机器上的所有声音设备。问题是 enumerate 函数在 Windows XP 和 Windows 7 上为驱动程序名称DirectSoundEnumerate(...)返回不同的结果。

上面列出的三台机器的配置与戴尔 Precision 390 相同。

从 DX9SDK_DEC2005 到“DSound.lib”的程序链接。

有谁知道为什么 Windows 7 将驱动程序名称作为 GUID 而不是驱动程序名称返回?

0 投票
0 回答
429 浏览

c# - 尝试克隆 SecondaryBuffer 但遇到 MemoryAccessViolation 异常

我正在尝试克隆SecondaryBuffer,以便可以同时多次播放相同的声音。

这是我正在使用的代码: 在主线程中:

在不同线程上运行的函数中:

这是我在Clone函数上遇到的异常:

Microsoft.DirectX.DirectSound.dll 中出现“System.AccessViolationException”类型的未处理异常

附加信息:试图读取或写入受保护的内存。这通常表明其他内存已损坏。

有人有解决方案吗?

0 投票
2 回答
6750 浏览

c# - 在 Windows 中检测耳机

我正在尝试检测耳机是否已插入 Windows。我已经尝试过 DirectSound 和 NAudio 库,但没有任何成功。有没有人有什么建议?

注意:此问题与此问题重复,但该问题的答案不包含任何代码示例或教程。

0 投票
1 回答
1346 浏览

c# - C# 中的 FFmpeg 和 DirectSound/XAudio2

我一直试图让它工作一段时间,但有点卡住了。

我试图能够使用输出到 DirectX 和 DirectSound 或 XAudio2 的 libavcodec 在 C# 中播放视频。我已经设法让它播放视频,但我坚持让它输出声音。

我没有使用过 DirectSound 或 XAudio2 的经验,或者 libavcodec 的文档很少,这都无济于事。我设法获得了音频编解码器,但我一直试图解码它或通过 DirectSound/XAudio2 输出它。

如果有人能够指出我正确的方向,或者只是告诉我该怎么做,我将不胜感激。

0 投票
1 回答
607 浏览

c# - C# 使用摄像头麦克风录制

我正在制作一个从麦克风录制声音的应用程序,但我不知道如何将所有麦克风安装在电脑上……我尝试过使用 DirectSound,但这只给了我声卡 MicIn。那么,我怎样才能得到所有的麦克风呢?

0 投票
1 回答
192 浏览

c# - 如何将事件添加到 C# 中的包装类?

我正在使用DirectSound框架和SecondaryBuffer对象。我将SecondaryBuffer对象包装在另一个类中,因为我有一些其他值要与我的SecondaryBuffer.

播放声音后,我想处理SecondaryBuffer,但是,检查它是否完成播放的唯一方法是检查它的状态。

我想创建一个当我的状态是正确值event时可以调用的。SecondaryBuffer

这是包含我的包装类的片段。

没有事件,我必须使用 aTimer并检查这样的状态;

无论如何,我可以events用来调用 SecondaryBuffer 对象的 Dispose() 方法,而无需使用Timer.

0 投票
2 回答
6817 浏览

c - 在 Windows 上使用 C 将数据流式传输到声卡

作为大学项目的一部分,我必须进行一些信号处理,并希望使用 PC 声卡输出结果。该软件必须用 C 语言编写,并且需要与 Windows(最好是 7 和 XP)一起工作。

我找到了输出 .wav 和类似文件的代码示例,但我对连续输出数据而不是从文件输出感兴趣。尽管一些声音 API 似乎有自己的处理缓冲区的方式,但输出的数据很可能会以数组的形式呈现。

任何建议都会很棒,代码示例甚至最好的 API 也一样。我看过 DirectSound 和 OpenAL,但仍然不确定如何开始。

0 投票
1 回答
255 浏览

volume - 如何在 C++ 中使用 DShow.h 和 strmiids.lib 实时调整声音片段的音量

我试图弄清楚如何在我的 C++ 程序中实时设置我的声音剪辑播放的音量,并做一些事情,比如随着 2 个对象彼此靠近而增加声音的音量。现在,我正在使用“DShow.h”以及“strmiids.lib”,并且我正在使用以下数据成员指针提供的接口:

使用这些提供的接口,有没有办法改变媒体流播放的音量?