使用C语言播放一首音乐

播放音乐

大家好,我是辰梦!
很久没有写过文章了,在这期间,我写了很多代码,但很多都是别人写的,我想了又想,今天把我觉得比较好的代码给大家分享出来!
相信大家也找了很久的C语言音乐播放器,在这里,我就抛转引玉,虽不是音乐播放器,但也是做音乐播放器的第一步!

第一节 代码的组成

#define use_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<graphics.h>
#include<stdlib.h>
#include<conio.h>
#include<Windows.h>
#include<time.h>
#include<string.h>
#include<mmsystem.h>
#include"resource.h"
#pragma comment(lib,"winmm.lib")

这里先把头文件给粘贴下来,当然,头文件只有多的,没有少的!
多说一句:我这个代码,是在visual studio2019编辑环境下写的!
对于要写出音乐播放器,要查阅很多的专有名词,举个例子:

PlaySound(MAKEINTRESOURCE(IDR_WAVE2), NULL, SND_RESOURCE | SND_ASYNC)

这个一定要有哦~!
这行代码是播放音乐用的!
下载库EeasyX,如果有这个C语言图形库的话,恭喜你,可以不用下载其他库了
好了,我们现在进入正题!!

(前方高能!!)

在这里插入图片描述

哈哈哈,推明天是不可能的!
我怎么可能推到明天来做?!

第二节 加载图片

做一个C语言音乐播放器,怎么能够少了音乐的图形界面呢?
光秃秃的,肯定不好看
(网上好看的图片,有很多,自己去找)
加载图片一般分为三步走:

  1. IMAGE img;//即说明一下,告诉计算机我们要加载图片
  2. loadimage(&img,“在这里填你的图片地址(相对路径或者绝对路径都可以)”);
  3. putimage(,0 0,&img);//显示图片,控制台上显示

第一步当中的img那个其实是你输入的名字,(随便输),但是要跟后面对应哦~
putimage开头两个0,表示图片的坐标!

举个例子:(以我的代码为例,仅供参考!)

	IMAGE img;
	loadimage(&img, L"bg01.jpg", 770, 550);
	putimage(0, 0, &img);

loadimage()里面的770和550表示图片的像素,即图片的宽高。

第三节 播放音乐与完整代码

(重点来了!!)
完整代码你们是不是期待很久了呢?就像我自己,看别人的文章,直接跳到完整代码处,然后自己东一榔头西一棒的瞎操作一番,(温馨提示:别学我)
在之前,提到了PlaySound()函数,我们把它加入到实际的例子当中
如下:

	if (0 == PlaySound(MAKEINTRESOURCE(IDR_WAVE2), NULL, SND_RESOURCE | SND_ASYNC))
	{
		printf("播放失败!!");
	}

本人代码写的简单,大佬勿喷!!
有情提示,请将你的音乐放在资源文件里。下面请看详细操作!

  • 第一步,找到你的“资源文件”,右击,出现多个选项!

图片如下:

在这里插入图片描述
因为我这里加了音乐软件,所以跟你们可能不一样,但是呢?操作都一样,右键点击“资源文件”!
接着点击“新建项”,图片如下:
在这里插入图片描述
点击新建项之后呢?就会弹出一个窗口,我们就在“资源”>>"资源文件”,然后点击“浏览”,就可以了。
图片具体操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样你的资源文件下就有一个文件了,还是老操作,右键点击它,然后选中它最下面的“添加资源”>>这样之后就点击“导入”,之后呢?选中“波形文件”,这里的波形文件就是指的wav格式的音乐!

(重点:一定要wav呀!!)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

好了,整个文章也已经到了末尾了,最后贴出我的终极大招完整代码就基本结束了!

完整代码如下(重点!!!!)

#define use_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<graphics.h>
#include<stdlib.h>
#include<conio.h>
#include<Windows.h>
#include<time.h>
#include<string.h>
#include<mmsystem.h>
#include"resource.h"
#pragma comment(lib,"winmm.lib")
//int r[4] = { 80,150,250,283 };//R1 R2 R3 R4....顺序
int main()
{
	initgraph(770, 550);
	IMAGE img;
	loadimage(&img, L"bg01.jpg", 770, 550);
	putimage(0, 0, &img);
	IMAGE play;
	loadimage(&play, L"play.jpg",60,60);
	putimage(330, 450, &play);
	IMAGE next;
	loadimage(&next, L"next.jpg", 60, 60);
	putimage(400, 450, &next);
	IMAGE last;
	loadimage(&last, L"last.jpg", 60, 60);
	putimage(260, 450, &last);
//	RECT R = { 80,150,250,283 };//矩形指针R1  80,150,250,283
//	LOGFONT f;//字体样式指针
//	gettextstyle(&f);//获取字体样式
//	wcscpy_s(f.lfFaceName, _T("宋体"));//设置字体为宋体
//	f.lfQuality = ANTIALIASED_QUALITY;//设置输出效果为抗锯齿
//	settextstyle(&f);//设置字体样式
//	settextcolor(YELLOW);//设置字体颜色
//	drawtext(_T("欢迎"), &R, DT_CENTER | DT_VCENTER | DT_SINGLELINE);//在水平区域内,即矩形区域R1,输入汉字,水平居中,垂直居中,单行显示
	settextcolor(WHITE);
	settextstyle(30, 40, L"宋体");
	outtextxy(160, 50, L"音乐播放器");
	if (0 == PlaySound(MAKEINTRESOURCE(IDR_WAVE2), NULL, SND_RESOURCE | SND_ASYNC))
	{
		printf("播放失败!!");
	}
	system("pause");
	closegraph();
	return 0;
}

仅供参考,本人经过实测(在visual studio2019环境下),完美运行 !
(有疑问,评论区见!可私信!)

参考文章:

我是参考这个文章写出来的,如果想进一步思索的话,请点击这里https://blog.csdn.net/qq_40571533/article/details/104393805?utm_source=app&app_version=4.8.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

posted @ 2021-06-09 17:18  辰梦starDream  阅读(45)  评论(0编辑  收藏  举报  来源