问题标签 [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.
c# - Windows 多媒体 API winmm.dll 库太慢
我正在使用 Windows 多媒体 API winmm.dll 库来播放 MP3 文件,当我加载一首歌曲时,它需要 3-5 秒才能打开并开始播放歌曲。我想制作一个音乐应用程序,这需要快速加载。有什么想法可以改进代码吗?
这是我使用的代码:http ://www.geekpedia.com/code111_Play-MP3-Files-Using-Csharp.html
问候,亚历山德鲁·巴德斯库
c# - mciSendString:包含空格的文件
如果我使用 mciSendString (winmm.dll) 并尝试读取包含空格的文件(例如 F:\MUSIC\(01) [VA]01.StimAxel - Restart(DJ X-VenomRemix).mp3),我得到一个错误代码
263。mciSendString 不能处理包含空格的文件。如何避免这个问题?
Pcommand = "status \"" + path + "\" length";
int ret = (int)mciSendString(Pcommand, sBuffer, sBuffer.Capacity, 0);
c# - 操纵杆键捕获
我想使用 winmm dll 捕获来自操纵杆的输入。我对导入和使用 DLL 知之甚少。
我试图做到这一点,但我不知道该怎么做..
如何从 DLL 中获取 joyinfoEx 结构并将其放入 JoygetPosEx ..?:S
audio - 除了 DirectSound 输出之外,是否值得实现其他任何东西?
我正在为 Windows 用户编写音频应用程序。目前音频通过 DirectSound 转储到声卡。在需要回退到多媒体扩展 (WinMM.dll) 的典型桌面上,是否有任何原因可能会失败,或者用户 (XP+) 通常会拥有与 DirectSound 兼容的驱动程序吗?
c# - System.Threading.Timer:它为什么讨厌我?
我刚开始玩弄 C#/.NET/mono 之类的东西,我正在尝试制作一个简单的歌曲播放器。为此,我正在使用winmm.dll
(没有找到简单的跨平台解决方案)。问题是这样的:我需要在播放歌曲的同时更新轨迹栏。我有两个函数,Player.GetLength
and Player.GetCurrentPosition
,它们以毫秒为单位返回时间。如果我称他们为“正常”,一切都很好。但我需要在计时器中调用它们,如下所示:
这是GetLength
,并且GetCurrentPosition
是类似的:
问题:当这两个函数之一被调用时,程序只是停止,没有任何警告或异常抛出。注意:我使用的是 .NET
所以我想知道你是否可以向我解释我哪里弄错了:)
c# - 通过回调的波形音频,未收到数据
我正在尝试使用 C# 中的 WaveForm 音频函数从麦克风中读取。现在我没有过去使用这个库的经验,所以可能只是我遗漏了一些明显的东西。
我能够成功(至少没有返回错误)打开设备,添加缓冲区并启动该设备。如下:
请注意,我通过调试器检查了 err 的值,它始终为 0。此外,我查看了设备 0 的属性。共享时其默认音频格式为 44.1 kHz,2 声道,16 bps(如我在用)。使用的回调函数是:
另外值得注意的是,在我调用waveinOpen 之后,使用WIM_OPEN 成功调用了一次回调。如有必要,我可以发布我的波函数的 pinvoke,但大部分来自 pinvoke.net。
谁能发现上述代码有什么问题可以解释为什么我没有得到任何数据?非常感谢任何输入。谢谢你。
windows - Windows 中的声音效果
我正在制作一个简单的游戏。我正在用枪击球。当子弹与球碰撞时,它应该会发出声音。我是否这样做但在声音效果期间我的游戏会暂停一段时间。我不想要保持声音效果。下面是声音效果的代码。
c# - NullReferenceException,没有堆栈跟踪......从哪里开始?
我有一个 WPF 音频应用程序。
偶尔(甚至在调试器中)我会看到一个NullReferenceException
没有堆栈跟踪信息的文件。
如何开始调试这样的问题?
一些背景:
我是 P/Invoking 函数,其中涉及在调用时WinMM.dll
注册回调waveOutOpen
事实证明,这很难稳定下来,尤其是在我调用waveOutClose
,然后立即waveOutOpen
再次调用(通常是为了更改输出格式)的时候。
我怀疑这个问题可能与我在上面描述的电话有关(尽管知识如此之少,我可能完全偏离目标)。
重现该问题目前被证明是难以捉摸的,尽管我可以为相当一致地看到此问题的用户提供构建。我可能会尝试将导致问题的操作加速到可以确定地在调试器中重现问题的程度。
关于调试器,我没有修改任何设置(包括Enable unmanaged code debugging
)或任何Debug -> Exceptions...
设置。老实说,我对这里提供的东西一无所知,所以欢迎任何提示。
异常怎么可能没有堆栈跟踪?你以前见过这个吗?帮助!
c# - C# 中的访问冲突 - winmm.dll ntdll.dll
我有一个应用程序,它基本上做了三件事:
- 向用户显示图像
- 向用户播放 1-2 秒的声音 (wav)
- 录制麦克风输入 4 秒(播放声音时)
每个用户会发生 280 次,所有记录都保存在每个用户的目录中。但是,在该程序的最后 18 次运行中,有 2 次因为模块 ntdll.dll 中代码为 c0000005(被描述为访问冲突)的未处理异常而崩溃。我使用的唯一非托管 api 调用是来自 winmm.dll 的 mciSendString 以获取 wav 文件的持续时间并进行录制。播放是使用 WindowsMediaPlayer 的实例完成的。
崩溃似乎是随机的,并且都发生在同一台机器上(正在使用 3 个)。这些是我的问题:ntdll.dll 真的是异常的来源吗?我是否正确理解访问冲突是无效的内存访问?在 .NET 虚拟机中运行的 C# 程序怎么会发生这种情况?
根据请求,这里是我调用 mciSendString 的一类
让我知道是否还有其他相关细节我应该包括...
c++ - win32应用程序中的操纵杆,winmm
我应该如何理解这个文档:http: //msdn.microsoft.com/en-us/library/dd757116%28v=VS.85%29.aspx
我只能使用 4 个按钮和 1 个模拟摇杆吗?我有一个带有 12 个按钮、2 个模拟操纵杆和一个“转向十字”(POV 帽子?)的游戏手柄。我可以在 winmm 中使用多少个这些按钮?