问题标签 [winmm]

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

c++ - 音频处理和删除部分音频

我是语音编码的新手,现在我成功地在文件中录制了麦克风,并每 10 秒将其保存在具有SaveRecordtoFile功能的文件中(这样做没有问题)

现在我想从记录的数据中删除例如 2 秒,所以我的输出将是 8 秒而不是 10 秒,randomTime数组0中是我想要删除的秒数......

在 for 循环中,我将数据复制到waveHeader->lpData新缓冲区中if (randomTime[i] == '1')

看起来这是一个真正的算法,应该可以工作,但问题是输出,一些输出很好(大约 70% 或更多),但其中一些已损坏

我认为我的代码有错误,但我调试了这段代码几天,但我不明白问题出在哪里?

由于我 70% 或更多的输出都很好,我认为这不是因为字节或样本

0 投票
0 回答
174 浏览

c++ - PlaySound() winmm 不播放现有声音

我只是在 c++、opengl 和 glut 中有一个小行星游戏项目。我正在尝试使用 minGW 和 Visual Studio Code 中的Windows.hand播放推力船的声音,mmsystem.h然后再放入我的行编译器代码。

accelerate当按下 Glut specialKey UP 时,我执行了一个小函数:

看方法一,歌曲播放有延迟很长的延迟和SND_ASYNC不工作。使用方法 2,我在终端上遇到错误:

如果我尝试放置所有路径C:\\MinGW\\projetos\\sounds\\thrust.wav,我会遇到同样的错误。

如果有人有任何想法,请发布。

0 投票
1 回答
257 浏览

c# - 使用 windows 多媒体 (winmm.dll) 获取设备(操纵杆)guid

我尝试实现与非托管代码和 c# 的互操作。

我决定为此使用 winmm.dll。

需要获取操纵杆唯一的 guid 并识别设备状态(连接或未连接)

经过一番调查,我相信应该做到这一点的功能已经确定(joyGetDevCapsA)。但是不清楚应该将什么值作为int id参数传递

没有太多关于winmm API for C#思想互联网的信息,所以如果有人有经验,请分享。

Q:如何检测当前是否有摇杆并获取设备唯一的Guid?

0 投票
1 回答
146 浏览

python - Winmm.dll 不返回文件长度

我正在尝试使用 winmm.dll (ctypes.windll.winmm) 在 python 中播放 .mp3 文件。但是当我尝试以毫秒为单位获取某个文件的长度时,而不是实际长度(05:23 = 大约 323000 毫秒)我只得到 3。状态命令得到的时间格式是“m”,之后它不会改变设置命令。这是一些说明问题的代码:

及其输出:

在此先感谢您的帮助!

0 投票
1 回答
899 浏览

excel - 如何通过VBA同时异步循环播放Excel中的多个WAV文件?

这是我第一次寻求帮助。

我检查了很多网站,甚至通过维也纳大学的 WaybackMachine for Excel 文件,我还没有找到解决方案。我检查了来自 winmm.dll API 的函数,例如 sndPlaySoundA 和 mciSendStringA。

我能够播放异步循环的 WAV 文件,但目前无法同时播放另一个异步循环的文件。正如您在下面看到的,可以组合启用循环和异步的标志。我已经尝试将它与另一个标志结合起来,但没有我想要的结果。

我还尝试了下面的代码,它异步播放多个文件但不循环播放。知道如何异步循环多个文件并控制它们吗?

0 投票
1 回答
208 浏览

c - 未调用消息“MM_WOM_DONE”

我有一个问题:一旦音频块播放完毕,我就没有收到“MM_WOM_DONE”。

声音相关代码:

控制台输出:

正弦波播放良好且正确,但一旦播放完毕,一些短暂的白噪声就会开始播放很短的时间(接近 100-200 毫秒)。还有“正弦波停止播放!” 消息永远不会出现在控制台中,这意味着永远不会使用“MM_WOM_DONE”消息调用 WndProc 函数。如果我在“initSound”函数中处理所有内容,即使写入和关闭 waveOut 之间的延迟更大(超过一秒),正弦波最终也不会播放白噪声。

0 投票
1 回答
118 浏览

c++ - 如何知道 MMsystem 录音何时结束?

我正在使用“winmm.lib”c++ 库通过麦克风访问音频。

我有一个包含 8192 个元素的短整数数组,我想用音频流填充它们。

当我在正确的时间段内录制声音和睡眠时,它工作正常:

但是现在,我想在waveInStart()调用函数之后做一些事情,同时录音,就像这样:

这个库中是否有一个函数可以知道声音缓冲区是否已被完全填满?

编辑:

我的帖子不够清楚:我正在寻找的是我的示例中“is_still_recording”的 winmm 函数。

我知道有一个,但我无法在任何地方找到它。

0 投票
1 回答
278 浏览

vb.net - 在特定时间播放声音 - Winmm.dll - VB.Net

我开始使用 winmm.dll 播放声音(它提供了一次播放多个声音并设置音频参数的可能性),但我找不到该库所有功能的有效列表。

我有一个包含更多音乐的 Wav 文件,所以我必须单独启动它们。

我有这个代码:

那么 Winmm.dll 中是否有一个函数可以在特定时间开始播放声音?

0 投票
0 回答
496 浏览

c# - 如何在 WPF 中使用 Windows 多媒体 API (winmm.dll) 播放波形文件?

我正在开发一个波形文件播放系统,但我无法使用正确的播放输出winmm.dll

我遇到的问题是:

  1. 播放突然停止。
  2. 播放速度加快或中断或两者兼而有之。
  3. 根本没有播放。
  4. “停止”方法导致系统挂起Thread.Join呼叫。

我确实意识到在 C#、WPF 中播放声音文件还有其他选择,但我正试图通过文件来实现它winmm.dll.wav因为它可以让我*(我希望)构建特定的功能,例如:Wave File Visualization and Sound效果过滤器

我看过这个代码项目链接:

在 C# 中编程音频效果

它非常有见地,但我无法在 WPF 中获得类似的结果。我不确定问题是否与垃圾收集有关,垃圾收集从 Windows 窗体到 WPF 的工作方式不同。

这是我在 GitHub 上的项目:

Wave Player - 基础 - WPF 和 Windows 窗体

该解决方案有 2 个项目:一个是 Windows 窗体,另一个是 WPF。Windows 窗体项目工作正常,而 WPF 则不行。然而,这两个项目都使用相同的winmm.dll代码逻辑。

我还在“波形音频”上找到了这个 Microsoft 链接:

Microsoft - 关于波形音频

任何帮助或建议将不胜感激。

0 投票
1 回答
93 浏览

c++ - 在 gcc windows api 字符串处理中启用 UNICODE

我正在尝试通过 Windows Wave 设备进行扫描,使用以下测试片段test.cpp

用 PowerShell 在 PowerShell 中编译gcc version 8.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project),我收到此错误:

我认为wstring构造函数包括对 c 风格的空终止字符串的支持。为什么我会收到此错误?