733394 2024-05-24 08:36 采纳率: 0%
浏览 1

mciSendString

#include<iostream>
#include<easyx.h>
#include<mmsystem.h>
#pragma comment(lib,"winmm.lib")
#include<Windows.h>
int main()
{
    initgraph(1999, 1999);//init初始化   graph图形界面
    system("pause");
    mciSendString("open e0d9w - rej4m.mp3 ",NULL,0,NULL);
    mciSendString("play e0d9w - rej4m.mp3",NULL,0,NULL);
     while(1);
    return 0;
}



没报错但是不播放音乐



  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-05-24 08:36
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    根据您提供的代码片段,您正在尝试使用 mciSendString 函数来播放音乐文件。代码中存在几个可能的问题,我将一一指出并提供可能的解决方案:

    1. 文件路径问题mciSendString 的第一个参数是文件路径,您提供的文件路径 "open e0d9w - rej4m.mp3 " 可能不正确。确保文件名和扩展名正确,并且文件路径是正确的。如果文件和您的程序在同一目录下,您可以尝试使用相对路径,例如 "open e0d9w-rej4m.mp3"(注意去掉空格和短横线)。

    2. 文件格式支持: 确保您的系统支持播放该音乐文件的格式。mciSendString 支持多种格式,但是如果您的音乐文件格式不被支持,它将无法播放。

    3. 无限循环问题: 您的程序中有一个无限循环 while(1);,这会导致程序永远运行下去,不会退出。如果您希望在音乐播放结束后退出程序,您需要添加适当的逻辑来结束循环。

    4. 错误检查mciSendString 函数调用可以返回错误代码,您可以通过检查返回值来确定是否成功播放音乐。例如:

      mciSendString("open e0d9w-rej4m.mp3", NULL, 0, NULL);
      DWORD result = mciSendString("play e0d9w-rej4m.mp3", NULL, 0, NULL);
      if (result) {
          // 处理错误
          std::cerr << "Failed to play music." << std::endl;
      }
      
    5. 资源释放: 在音乐播放结束后,您可能需要关闭音乐文件,释放资源:

      mciSendString("close e0d9w-rej4m.mp3", NULL, 0, NULL);
      
    6. 暂停命令: 您的代码中使用了 system("pause");,这会在 Windows 命令行界面中暂停程序,等待用户按任意键继续。这可能不是您想要的行为,因为您可能希望程序继续执行以播放音乐。

    7. 头文件和库: 确保您的项目正确链接了 winmm.lib 库,并且包含了所有必要的头文件。

    尝试上述建议后,如果问题仍然存在,请检查您的开发环境设置,确保没有其他配置问题阻止音乐播放。如果需要进一步的帮助,您可以提供更多信息,例如错误消息或开发环境的详细信息。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月24日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据