【C++小游戏播放声音文件】
如题,黑框程序,想实现能读取放置在CPP文件夹内的音乐文件,就是换个磁盘也能正常读取的,比如达成一个条件就读取那个音频文件,请问各位大佬能不能教教如何实现呢?如果写个样板代码那就更感谢啦。(主要楼主也不知道用什么函数好....) 一般用法:PlaySound(TEXT("[相对路径指定]音乐名.wav", NULL, SND_ASYNC | SND_FILENAME));对于参数一最好加上Text(),且音乐文件格式貌似只支持wav(MP3通过转化即可);
关于函数的官方解释详见MSDN:https://docs.microsoft.com/en-us/previous-versions/dd743680%28v=vs.85%29。
PS: VS以外的其他编译器在头文件加完之后在编译选项加一个 -lwinmm
VC或者VS,记得添加资源文件
=======================================================================================
另外,还有个复杂点的mciSendString(),实现的功能也可大致相同
MSDN链接:https://docs.microsoft.com/en-us/previous-versions/dd757161%28v=vs.85%29
如果需要具体简易代码实现给邮箱,大小超过限制了
{:10_266:}{:10_266:}{:10_266:}{:10_266:} 如果只是想换个磁盘也能正常读取音乐文件的话,直接将音乐文件放入当前程序目录下,使用相对路径访问即可
达成某个条件读取音乐文件,不就是个判断吗? 我叫MD 发表于 2020-6-4 18:27
如果只是想换个磁盘也能正常读取音乐文件的话,直接将音乐文件放入当前程序目录下,使用相对路径访问即可
...
如何实现播放呢?初学小白,查了一些Playsound函数的资料,不知道怎么用啊 星海风驰 发表于 2020-6-4 19:36
如何实现播放呢?初学小白,查了一些Playsound函数的资料,不知道怎么用啊
PlaySound("这是是你的音乐文件名", NULL, SND_ASYNC | SND_LOOP | SND_NODEFAULT);
使用例子:
PlaySound("稻香.mp3", NULL, SND_ASYNC | SND_LOOP | SND_NODEFAULT); 我叫MD 发表于 2020-6-4 20:15
PlaySound("这是是你的音乐文件名", NULL, SND_ASYNC | SND_LOOP | SND_NODEFAULT);
使用例子:
他提示这个,但是前面已经声明了啊
代码和报错都给看下 用的IDE不一样,这个还真不清楚 我叫MD 发表于 2020-6-4 21:30
代码和报错都给看下 用的IDE不一样,这个还真不清楚
#include<iostream>
#include<cstdlib>
#include<ctime>
#include<windows.h>
#include<Mmsystem.h>
#pragma comment(lib,"winmm.lib")
#include<dsound.h>
using namespace std;
int main()
{
system("color 2f");
system ("title 星海风驰");
cout<<"欢迎来到猜数字的游戏,系统会随机给出四位整数,您有十次机会来猜对此数字"<<endl;
cout<<"每次猜测后,系统将会提示您,其中位置和数字均正确将以A表示,数字正确而位置错误将以B表示"<<endl;
cout<<"希望您能顺利过关!!!!"<<endl;
int i,j; //计数器
int num,guess; //用来存放随机数和用户数
int arr1,arr2; //分别存放各位随机数和各位猜测数字
int a=0,b=0; //用来统计A,B
int count=1; //用来统计用户的猜测此数
srand(unsigned(time(NULL))); //产生随机数
num=(rand()%5000+5000)*17/19;
while(count<=10)
{
arr1=num%10;
arr1=num/10%10;
arr1=num/100%10;
arr1=num/1000;
a=0;b=0;
cout<<"请输入第"<<count<<"个四位数:";
PlaySound("强化失败.wav", NULL, SND_ASYNC | SND_LOOP | SND_NODEFAULT);
cin>>guess;
if(guess>9999 or guess<1000 or guess%1 !=0) {cout<<"输入不合法,请输入一个四位数"<<endl;continue;} //判断输入是否合法
arr2=guess%10;
arr2=guess/10%10;
arr2=guess/100%10;
arr2=guess/1000;
for(i=0;i<=3;i++) //这里用两个循环来校验用户数和猜测数
{
for(j=0;j<=3;j++)
if(arr1==arr2&&i==j)
{a++;arr1=10;arr2=11;}
}
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
if(arr1==arr2)
{b++;arr1=10;arr2=11;}
}
if(a==4) break;
cout<<""<<a<<"A"<<b<<"B"<<endl;
count++;
}
if(count==11)
cout<<"您好,正确的数为"<<num<<endl<<"由于你猜测错误,程序即将爆炸....."<<endl;
else
cout<<"恭喜您猜对了,此数为"<<num<<endl<<"由于您智商过高,程序即将爆炸"<<endl;
system("pause=NULL");
return 0;
}
我这么简单测试了一下 编译没问题,而且也有声音,你的我还真不清楚怎么回事
毕竟咱们环境不同
星海风驰 发表于 2020-6-4 21:51
你那个是坑人吧(自爆){:10_256:} 我叫MD 发表于 2020-6-4 22:24
我这么简单测试了一下 编译没问题,而且也有声音,你的我还真不清楚怎么回事
毕竟咱们环境不同
可能他那个用的是其他编译器,你用的是vs CodingCat_k 发表于 2020-6-5 08:27
一般用法:PlaySound(TEXT("[相对路径指定]音乐名.wav", NULL, SND_ASYNC | SND_FILENAME));
对于参数一最 ...
用的codeblockks,加了-lwinmm跟上面一样的错误,
邮箱
344579390@qq.com
谢谢{:10_266:} CodingCat_k 发表于 2020-6-5 08:27
一般用法:PlaySound(TEXT("[相对路径指定]音乐名.wav", NULL, SND_ASYNC | SND_FILENAME));
对于参数一最 ...
我就是想设计一个成功,一个失败,成功读取Success.wav
失败读取Fall.wav 星海风驰 发表于 2020-6-5 19:52
用的codeblockks,加了-lwinmm跟上面一样的错误,
邮箱
已发送注意查收,论坛不经常在线,有疑问直接至邮
页:
[1]