问题标签 [mcisendstring]

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 投票
2 回答
1056 浏览

c# - 无法通过 mciSendString 创建波形文件

我正在尝试捕获一个 Skype 呼叫并将其保存在我的 PC 中并带有波形扩展名,但每次我尝试mciSendString它都无法创建声音文件。

这是我的代码

该路径是我需要保存文件的位置:

我的代码中有什么样的错误?

但是当我硬编码路径和文件名时,创建mciSendStringresult = mciSendString("save recsound d://test.wav", "", 0, 0);一个文件,但是当我播放该波形文件时没有记录 Skype 通话。

我的路径规范有什么问题?

第二件事是,当生成波形文件时,声音没有被记录下来。为什么?

0 投票
0 回答
323 浏览

c# - 在 C# 中使用 winmm.dll 预加载音频文件

我正在使用 C# 和 winmm.dll 编写一个波形音频播放器。为了减少从一个文件切换到下一个文件时的延迟,我使用不同的别名打开下一个文件。在切换到下一个文件时,我停止了第一个别名,然后播放第二个。一切都很好,直到用户在播放下一个(预加载的)文件之前等待一段时间(即 20 分钟)。在这种情况下,播放器在播放新文件之前有 5 秒的延迟,该文件已经预加载了一段时间。

问题是,winmm.dll 是否将未使用的文件置于“待机”模式?我们是否需要在特定时间段内激活它以减少延迟?如果是的话怎么做?

我找到了一个名为“parked”的状态,但这永远不会返回,而且我在网上找不到任何描述它的东西。

如果有人可以提供帮助,这将是一个很大的帮助,因为该 DLL 的文档并不多。

MCI 命令

提前致谢!

0 投票
1 回答
426 浏览

c - 使用带空格的 mciSendString

我正在尝试播放名称中带有空格的声音文件

例如:“我的 File.wav”

所以发送这样的文件:

mciSendString("play C:\\myFile.wav",0,0,0);

会工作得很好。但:

将失败。

这个问题有什么解决办法吗?

0 投票
1 回答
451 浏览

c - 使用 mciSendString:如何返回声音状态?

我正在编写一个简单的程序来播放声音文件。现在我正在使用 mciSendString 播放声音。

我的问题是我需要返回文件的状态模式(播放中,暂停..),我不知道如何使用“状态”命令返回它。

我怎么能做这样的事情?

0 投票
1 回答
716 浏览

c++ - 您将如何使用变量代替 mciSendString 中的音量?C++

所以我正在使用 C++ 制作一个基本的 2D 格斗游戏。对于声音/音频效果,我正在使用mciSendString()

上面的代码工作正常。它将声音的音量设置为 500;但是,我不想硬编码音量值。我希望它逐渐变小,而不必一遍又一遍地复制和粘贴同一行,而音量只有一个较小的整数值。

我想做这样的事情。我可以有一个包含任何整数值的变量,而不是硬编码的 500。但是,当我运行它时,我没有收到任何错误,并且音频继续播放,就像通常在 1000 而不是 500 一样。

我该怎么做才能解决这个问题?

0 投票
0 回答
552 浏览

vb.net - 如何使用 MCISendString 播放包含特定文件夹的所有视频?

我需要一种方法来播放我使用特定文件夹保存的所有视频文件,并在播放后再次循环播放视频。

我已经从MCISendstring互联网上的基本教程中获得了一些代码,但是只有一个视频正在播放我的文件夹路径,我认为我的代码有问题。任何帮助将不胜感激。

到目前为止,这是我的代码:

0 投票
1 回答
1295 浏览

c++ - 有没有办法使用“等待”选项暂停/停止使用 mcisendstring 播放的 mp3 文件?

我目前正在尝试使用答案中提供的命令创建一个 mp3 播放器。

实际上它工作得很好,但现在我正在尝试实现一个连续的游戏

这个命令应该从头到尾播放一个 mp3 文件,然后等到它真正完成播放。

这工作正常,但是,在尝试之前我确信,与通常播放一起工作的暂停或停止命令也可以在这里工作:

但是,每个命令似乎都对正在运行的 mp3 没有响应。

没有错误消息或任何东西,它只是不能按照我现在的方式工作。

有没有办法做到这一点?我必须使用暂停/停止命令发送任何其他参数吗?

0 投票
1 回答
997 浏览

c# - winmm.dll mciSendString 可能的最低音频设置?

我正在尝试使用 C# 和 winmm.dll 将此录制设置为可能的最低设置。我已经设置了下面的设置,但我没有听到任何区别。有谁知道我是否遗漏了什么?

我正在尝试尽可能低的音频设置。就像您从对讲机中听到的一样。

我对采样率所做的任何更改似乎都没有生效。

谢谢,

0 投票
1 回答
759 浏览

c++ - mciSendString 不会暂停从线程播放的声音

最近我已经要求类似这个问题的解决方案:

有没有办法使用“等待”选项暂停/停止使用 mcisendstring 播放的 mp3 文件?

我想在我的音频播放器中实现一个功能,它允许人们连续播放声音,同时滑块根据轨道运行的当前秒移动,并且还具有在当前轨道之后转到下一个轨道的功能是超过

之后(您可以在链接中阅读)尝试使用

由于轨道在完成之前无法暂停或停止的问题而失败,我现在正在尝试以另一种方式实现它。目前,当我开始播放曲目时,我还启动了另一个线程,即启动计数器。计数器以秒为单位获取轨道的长度,并且正在倒计时,还提供了一个用于暂停/恢复计数器的互斥锁。为了阻止我的 MusicCycle 简单地循环不受控制,我加入了线程,因此等待它的终止。

请注意,整个方法也是在线程中创建的:

MusicCycle 函数启动的线程如下所示:

此外,我还使用我的 Pause/Resume 方法添加了另一个功能来锁定/解锁互斥锁,这些方法也调用相应的 mciSendString 函数

当我现在调用 pause 时,mciSendString 会暂停轨道,并锁定计数器,使其不会继续倒计时。

但是,问题是它仍然不起作用。尽管我在不使用 mciSendString 中的等待选项的情况下努力想出一个解决方案,但暂停根本不会影响音乐的播放

有什么建议吗?

编辑:原来这实际上是由于线程而发生的。我已经做了一些 C# 很长时间了,您可以使用 Invokes 来解决线程问题。也许这在这里也是可能的?

EDIT2:我读了一下,似乎有一个选项可以通过 PostMessage WinAPI 调用在另一个线程的消息队列中发布一个方法。这里有可能吗?如果是,任何人都可以提供一个很好的例子吗?我读了一点,但到目前为止我还不太明白

C++ 中也有类似的东西吗?

0 投票
0 回答
286 浏览

c++ - MciSendString 自动全速播放 AVI 文件

我正在尝试使用 mciSendString 播放 avi 文件。

这是我的测试代码:

问题是它全速播放文件,就好像我已经完成了一样:

我尝试将速度设置为1000,但无济于事。

一些奇怪的事情:

  • 例如,如果我将速度设置为 2000,则文件会以双倍速度而不是全速播放
  • 对于某些文件,它以正常速度显示,我似乎无法弄清楚为什么。

我试图通过 GSpot ( https://en.wikipedia.org/wiki/GSpot )找出它的来源,因为由于以前的原因我已经有了这个软件,但我找不到任何相关性。

请理解,我对媒体文件的了解几乎不存在,因此请尽量保持简单。

谢谢你。