一、图片和音频放置
为了方便把图片和音频放置到项目文件中

二、头文件和库
要引入播放音乐相关的头文件
#include <mmsystem.h>// 播放音乐头文件
由于播放音乐不是C++标准模板库,链接的时候找不到,所以要指定
#pragma comment(lib, "winmm.lib")// 告诉编译器加载winmm.lib库文件
三、代码
#include <graphics.h>
#include <Windows.h>
#include <mmsystem.h>// 播放音乐头文件
#pragma comment(lib, "winmm.lib")// 告诉编译器加载winmm.lib库文件
int main()
{
// 初始化图片大小
initgraph(638, 664);
// 加载图片 _T是一个宏,根据需要转换成对应的编码
loadimage(0, _T("jnstyle.jpg"));
// 重复播放音乐
mciSendString(_T("play 江南style.mp3 repeat"), 0, 0, 0);
system("pause");
closegraph();
return 0;
}

四、动图
其实就是多张图片不停的循环播放
可以使用sprintf格式化输入到字符串。
loadimage循环加载是很慢的,因为要从硬盘中读取,所以可以预加载,然后用putimage显示图片。
这里只用了两张图片,当然也可以加载很多图片
#define _CRT_SECURE_NO_WARNINGS
#include <graphics.h>
#include <Windows.h>
#include <mmsystem.h>// 播放音乐头文件
#pragma comment(lib, "winmm.lib")// 告诉编译器加载winmm.lib库文件
#include <stdio.h>
int main()
{
// 从硬盘预加载图片到图片数组
IMAGE image[2];
char fileName[128];
for (int i = 1; i <= 2; i++)
{
sprintf(fileName, "E:\\C++复习\\江南style\\江南style\\jnstyle%d.jpg", i);
loadimage(&image[i - 1], fileName);
}
// 初始化图片大小
initgraph(638, 664);
for (int i = 0; i < 2; i++)
{
// 从(0,0)开始
putimage(0, 0, &image[i]);
Sleep(1000);
}
// 重复播放音乐
mciSendString("play 江南style.mp3 repeat", 0, 0, 0);
system("pause");
closegraph();
return 0;
}


被折叠的 条评论
为什么被折叠?



