2301_81630448 2024-04-10 08:04 采纳率: 50%
浏览 154
已结题

为啥我的mcisendstring没法播放音乐?

img

img


为啥我没法播放音乐啊,啥都尝试过了,求指点指点,文件路径都是对的

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2024-04-10 08:04
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    首先,需要检查以下几个方面:

    1. 文件路径是否正确
    2. 是否包括了正确的头文件和库文件
    3. 检查mciSendString调用是否正确
    4. 确认系统是否正确配置

    下面列出具体的解决方案:

    1. 确认文件路径是否正确:

      • 请使用绝对路径。例如,E:/游戏/音乐/黑夜问白天-林俊杰.mp3。相对路径可能会导致问题。
    2. 包括正确的头文件和库文件:

      • 需要包括头文件:windows.h和mmsystem.h。
      • 需要链接库文件:winmm.lib。可以使用#pragma comment指令来实现链接。
    3. 检查mciSendString调用是否正确:

      • 确认mciSendString语句参数的正确性。mciSendString函数接受四个参数,其中第一个为命令字符串,第二个为返回信息字符串的长度,第三个为返回信息字符串的地址,第四个为回调函数。可以将第二、第三、第四个参数设置为NULL。
      • 请注意,mciSendString函数必须调用两次。第一次调用用于打开文件,第二次调用用于播放文件。
    4. 确认系统是否正确配置:

      • 确认Windows系统的声音设置是否正确。请确保可以在其他程序中播放声音。
      • 确认所用音频文件是否被损坏或不支持该文件类型。

    下面是修改后的代码:

    #include <windows.h>
    #include <mmsystem.h>
    #include <graphics.h>
    #pragma comment (lib,"winmm.lib")
    
    int main()
    {
        mciSendString("open E:/游戏/音乐/黑夜问白天-林俊杰.mp3 type mpegvideo alias mp3", NULL, 0, NULL);
        mciSendString("play mp3", NULL, 0, NULL);
        system("pause");
        return 0;
    }
    

    请注意,代码中使用alias关键字指定了音频文件的别名mp3,以便在后面的调用中使用。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月18日
  • 已采纳回答 4月10日
  • 创建了问题 4月10日