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

c++ - 在 Qt 项目中使用 mciSendString

我正在尝试使用 mciSendString 函数在 Qt 中打开和关闭 cd 托盘。这是代码:

但我收到此错误:“未定义对 `mciSendStringW(wchar_t const*, wchar_t*, unsigned int, void*)' 的引用”如何修复此错误并毫无问题地使用 mciSendString 函数?

0 投票
1 回答
406 浏览

c++ - mciSendString 随机停止工作

我的代码

MusicLoc 包含路径,Music 包含文件名,所以 MusicLoc[1]+Music[1] 将是 C:\etc\etc\etc\audio.mp3 ,起初它工作正常,但后来它随机停止工作,我试过了一切都不起作用,所以我猜不推荐使用 mciSendString,所以有人知道一个好的轻量级音频库吗?

编辑:第一个 mciSendString 返回 266,第二个返回 275,如果它有任何用处,但我真的没有找到关于它们的好的文档。

GetLastError 也表示没有错误...

0 投票
2 回答
1918 浏览

c++ - 使用 mciSendString (MCIERR_CANNOT_LOAD_DRIVER) 播放 mp3 文件

我正在尝试编写一些可以播放 .mp3 文件的代码。我以为我可以使用 mciSendString 调用,但我遇到了一个奇怪的错误。

所以,当我有这个代码时:

rc返回数字 266,返回的错误字符串GetErrorString为:

“加载指定设备驱动程序时出现未知问题。”

错误 266 是 MCIERR_CANNOT_LOAD_DRIVER

我也试过:

并收到同样的错误。

我认为它可能是 mp3 文件,但我尝试了几个不同的文件并不断收到相同的错误。

我的代码是 C++ 并在 Windows 7 上运行。我的代码是否缺少某些内容?

0 投票
1 回答
2233 浏览

c++ - 如何将 mciSendString("play path",0,0,0) 与 exe 路径一起使用?

mciSendString("play path repeat",0,0,0)以前在我的项目中播放音乐,我专门用它来同时播放多个声音。

问题是我想把声音放在可执行路径中,所以我使用了一个函数来获取 exe 路径

mciSendString()需要LPCSTR所以我尝试了以下

该程序运行没有错误,但它不播放声音。我该如何解决这个问题?

0 投票
0 回答
748 浏览

c# - 是否可以让 winmm.dll 以父形式(窗口)播放视频,而不是使用 mciSendString() 在新窗口中打开它?

以下是问题的描述:
我希望能够在我正在处理的项目中播放视频......最简单的方法是使用 PInvoke 和 winmm.dll。我用来打开文件的一段代码是:

以及播放文件的代码:

问题是视频文件已打开并播放但在新窗口中。有没有办法让它在我调用该方法的窗口中播放?
我尝试搜索 msdn,我确实找到了这个。如果您在lpszPlayFlags下查看,则标志窗口

指定播放应使用与设备实例关联的窗口。这是默认设置。

即使我确实使用了该标志,视频仍然会在新窗口中播放。显然,我做错了什么。如果有人知道我的错误是什么并且知道如何解决这个“问题”,那将不胜感激。
谢谢!
此致。

0 投票
1 回答
4199 浏览

c# - 在 Windows 7 中录制时获取麦克风音量

我正在实现一个简单的录制、播放应用程序,它可以播放和录制 WAV 文件。
要求如下:

1) Windows 7、Visual Studio 2010(或 2012)、C#
2) 录制、播放带有规格信息的 Wav 文件:samplerate 22050、mono、bitspersample 16
3) 录制时可以显示微声级

使用 1) 和 2),我可以使用 lib (winmm.dll) 和 mciSendString(),如下所示

对于 3),我还想使用 mciSendString。我找到了以下命令(状态):

但我不知道从上面的命令中获取音量,谁能告诉我方法?

参考:来自 mciSendString() 的状态命令可在 Microsoft 文档中找到:http: //msdn.microsoft.com/en-us/library/windows/desktop/dd798683%28v=vs.85%29.aspx
它说:级别:返回当前 PCM 音频样本值。

0 投票
0 回答
572 浏览

c# - 使用 mciSendString 使用 BackgroundWorker 播放 MP3

您好,我正在尝试使用我在此处看到的代码使用 BackgroungWorker 播放 MP3 文件。

我的播放功能在没有后台工作者的情况下工作得很好,为什么我不能这样播放呢?

提前谢谢!

0 投票
1 回答
504 浏览

vb.net - 打开可共享的 Midi 合成器设备

这是我在这里的第一篇文章,所以我希望我不会搞砸。

我正在 vb.net (家庭作业)中创建一个吉他英雄作为控制台应用程序,我遇到了一些问题。我正在使用 CarlsMidiTools 将解析的音符值传递给合成器。但我也想在后台播放伴奏音乐。问题是,我只能同时使用其中一个,可能是因为我无法让我的合成器(标准 MS GS 波表)进入共享模式。我也有辅助合成器,如果我将音符传递给初级合成器并将伴奏音乐传递给辅助合成器,我可以让它工作。但这是错误的解决方案,需要为潜在用户下载辅助合成器。

我发现这条线使用“可共享”,它在代码中用于打开 cd 驱动器,但我猜它不适用于音序器。

TL;DR / 我的问题是 - 如何让我的默认合成器进入可共享模式,以便它可以收听 carlsMidiTools lib 命令以及 mciSendString 播放选项?

此代码抛出“错误打开 MIDI 端口 - 正在使用的设备”,因为我尝试为 CarlsMidiTools 再次打开它,然后它开始播放 guitar.mid 但“Inst.PlayNote(70, 127)”将没有机会说一句话。

0 投票
1 回答
913 浏览

c++ - c线程-为什么mmsystem(使用mciSendString)不播放声音文件?

我想让我的游戏播放一些音效。一开始,我打开一些 mp3 文件mciSendString("open Muzle.mp3 alias Muzle");

我的问题是mciSendString("play Muzle from 0");仍然会导致一点延迟,并且游戏必须经常播放声音。

在另一个问题中,我读到使用线程可以解决问题。我对使用线程完全陌生。现在的问题是声音不播放 :p 。我通过在最后给出一个 cout 来验证线程是否正常运行。

我现在有这个功能:

(我也尝试过不使用 Sleep。我想知道是否需要它,因为如果线程到达末尾,它可能会被删除并且声音终止......我不确定线程​​或 mmsystem 是如何工作的)

如果我简单地调用这个Shout()函数,它将播放声音,执行 Sleep(2000),然后 cout。一切正常。但我必须使用线程,所以我尝试:

我得到了错误: abort() 已被调用。我发现我可能需要分离线程:

有了这个,一切看起来都正常(2秒后,我看到控制台上打印了“Test woi”),但没有播放任何声音。

嗯,所以感谢您阅读所有内容^.^。你知道如何解决这个问题吗?

0 投票
1 回答
697 浏览

c++ - C++ mciSendString setaudio 错误

我这里有这个功能;音量设置为 500,文件名字符串设置为“test.mp3”。

它给了我错误;

我不知道为什么,因为下面的函数在加载 .mp3 文件时可以完美运行

我很困惑为什么它不起作用。setaudio 不接受文件名有什么问题?我到处搜索,没有答案,甚至在 MSDN 上也没有。