c语言如何用mciSendString来实现音乐播放功能
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言如何用mciSendString来实现音乐播放功能相关的知识,希望对你有一定的参考价值。
下面看一个播放mp3音乐的简单示例: #include <windows.h> #include <mmsystem.h> #pragma comment(lib, "WINMM.LIB") int main(int argc, char *argv[]) mciSendString(TEXT("open 难忘的一天.mp3 alias mysong"), NULL, 0, NULL); mciSendString(TEXT("play MySong"), NULL, 0, NULL); return 0; 中的TEXT什么意思(这段代码没法播放音乐)。如果我的音乐文件在工程中我该怎么用c语言来实现播放功能请告诉我具体代码该怎么写,谢谢
TEXT是一个宏, 它会在条件适合情况下, 在"play MySong"字符前加"L"字母, 转换为宽字符没法播放音乐, 是因为你刚用mciSendString发送完命令, 歌曲刚要播放, 你直接一句return 0;退出程序了... 在mciSendString函数后面加Sleep(5 * 60 * 1000);再试试 参考技术A 我想用VC6.0做一个音乐播放器,使用的是mciSendString()函数。现在就差音量TCHAR cmd[256]; wsprintf(cmd,"status %s volume",shortPath); TCHAR
如何用c语言插入(背景)音乐
目录
一、导入头文件
二、用PlaySound()函数来播放音乐
PlaySound(TEXT(“要播放的音乐名称.wav”),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
注意:c语言只支持以 “.wav” 为后缀名的音乐播放。
如果你的音乐格式不是 “.wav” 后缀可以通过一些格式转换工具来转换。例如:格式工厂。
路径问题:默认的路径就是从Debug文件中(或者说从Debug文件开始的)。
例如:
PlaySound(TEXT(“要播放的音乐名称.wav”),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
只需把音乐放在Debug文件下即可,无需说明路径。
如果说你的路径在Debug文件下的一个叫做" 哈哈哈 "的文件夹下音乐名为666
则为:
PlaySound(TEXT(“哈哈哈\\666.wav”),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
如果说你的路径为其他任意的位置只需要把音乐路径复制下来并把路径中的单斜杠弄成双斜杆。
把路径中的单斜杠弄成双斜杆是因为单斜杠是转义字符的意思。
不过经过我的实验发现,其实音乐文件只要和 .c或者.cpp文件在同一个文件夹下就可以。
三、一些播放不了的坑。
例:
最后: 如果想让背景音乐结束用以下语句:
PlaySound(NULL,NULL,SND_FILENAME);
这个运行是不能发声的。这是因为运行的太快还没有开始播放音乐就已经结束了。
有的人以为是代码的问题或者编译器的问题最后找了一圈还是没有发现问题的根源。
解决办法:加一个能让程序暂停一会儿的语句。
例:system(“pause”);
到底是不是运行太快的原因呢?我用了一个死循环语句,没有用pause来暂停。发现也是能发声的。
总结:要想让它发声必须给它一点加载、播放音乐的时间,不能说程序一瞬间就运行完了。
不过我还是推荐加system(“pause”);语句,我用死循环可以是可以,不过有时候我发现死循环不能发出声音,
应该是我电脑当时太卡了第一个发声函数还没开始发声,就循环到第二个发声函数了,致使我的电脑只有轻微的
嗡嗡声。
最后:有的人用的DEV编译器会出现以下错误
解决方案:
codeblocks编译错误解决办法
找到该文件的路径复制
四、音乐模板
为了方便大家的直接使用我写了一个最最基础的播放音乐的模板。
#include<stdio.h>
#include<windows.h>
#include<mmsystem.h>
#pragma comment(lib,"Winmm.lib")
int main(void)
while(1)
PlaySound(TEXT("1.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
system("pause");
return 0;
我又写了一篇C语言播放MP3音乐格式的文章。感兴趣的可以去看看。
用C语言播放mp3格式的音乐
以上是关于c语言如何用mciSendString来实现音乐播放功能的主要内容,如果未能解决你的问题,请参考以下文章