#include <Windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
int main()
{
mciSendString("open E:\\VScode\\music.mp3", NULL, 0, NULL);
}
报错如图:
播放源的路径没有错,第一次用这个模块,求指教该怎么解决这个问题。
gcc不认#pragma,需要在task.json的配置args里加参数“-lwinmm”
新建个项目试试
根据您提供的信息,您在尝试使用mciSendString函数播放音乐文件时遇到了链接错误(ld returned 1 exitstatus)。这个错误通常是由于编译器无法找到指定的函数或库引起的。
在您的代码中,您使用了#pragma comment(lib, "winmm.lib")来链接winmm.lib库,该库包含了mciSendString函数的实现。然而,根据错误信息,链接器似乎无法找到这个库。
要解决这个问题,您可以尝试以下几个步骤:
确保您在编译时选择了正确的平台和编译器。winmm.lib库是Windows多媒体库的一部分,它通常在Windows平台下使用Visual Studio编译器进行编译。请确保您使用的编译器和平台与代码兼容。
检查是否正确链接了winmm.lib库。在Visual Studio中,您可以通过以下步骤来添加库文件:
打开项目属性页面(右键点击项目 -> 属性 或通过解决方案资源管理器中的右键菜单打开)
导航到 "链接器" -> "输入"
在 "附加依赖项" 下添加 "winmm.lib"(不包括引号)
在 "链接器" -> "常规" -> "附加库目录" 中添加 "winmm.lib" 的路径(通常是C:\Windows\System32\winmm.lib)
确保您的代码中正确引用了mmsystem.h头文件,并且没有其他的编译错误。
尝试在项目设置中添加-lwinmm标志来明确指定链接到winmm库。在Visual Studio中,您可以在项目属性页的 "链接器" -> "常规" -> "附加链接器选项" 中添加该标志。
在完成上述步骤后,重新编译并运行您的代码,看看是否解决了链接错误。如果问题仍然存在,请提供更多的错误信息和编译器设置,以便我能够更进一步地帮助您。
以下是一个示例代码,演示了如何使用mciSendString函数播放音乐文件:
#include <Windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
int main()
{
// 打开音乐文件路径
mciSendString("open \"E:\\VScode\\music.mp3\" type MPEGVideo alias music", NULL, 0, NULL);
// 播放音乐
mciSendString("music play", NULL, 0, NULL);
// 等待音乐播放结束
while (mciSendString("status music mode", NULL, 0, NULL) == MCI_MODE_STOP) {
Sleep(100);
}
return 0;
}
请注意,上述代码中的音乐文件路径需要使用双反斜杠("E:\VScode\music.mp3")或者单斜杠("E:/VScode/music.mp3")来表示,以避免由于转义字符引起的问题。
希望这可以帮助您成功播放音乐文件。如果您有任何其他问题或需要进一步的帮助,请随时询问。
【相关推荐】
这里我的当前音乐文件相对路径 kk.mp3 , 如果想要播放这个音乐,我们可以通过open与play这两个指令进行播放。
mciSendString("open kk.mp3 alias music", 0, 0, 0);//alias是别名的意思,下面就可以去直接用music来代替kk.mp3
mciSendString("play music", 0, 0, 0);//播放音乐
在打开文件时我以及给这个mp3文件取了别名,下面我是直接用music来表示这个文件的名字.
如果我们想重复播放音乐,那么就直接在play music后面加上repeat 就行了
mciSendString("open kk.mp3 alias music", 0, 0, 0);
mciSendString("play music repeat", 0, 0, 0);
如果我们想等播放完了音乐在接着执行下面的语句,那就在play music后面加上wait
mciSendString("open kk.mp3 alias music", 0, 0, 0);
mciSendString("play music wait", 0, 0, 0);
如果想播放视频,全屏播放加上fullscreen就OK
mciSendString("play music fullscreen", 0, 0, 0);