1:加载静态库
#include<mmsystem.h>
#pragma comment(lib,"winmm.lib")//加载静态库
2:局部变量和全局变量的使用--这样可以不用使用链表,但资源开销较大
typedef struct {
char number[5];
char count_time[100];
char text[100];
} SrtSubtitle; //src字幕的结构体
SrtSubtitle title[Storage];//存储字幕
typedef struct
{
int start_time;
int end_time;
}srctime; //用于存储还未转换的时间结构--可后期其他方式进行调用
srctime sctime[Storage];//存储开始和结束时间
typedef struct
{
int start_sc;
int end_sc;
}millisecond; //转换后的毫秒数
millisecond milsecond[Storage];//存储时间的毫秒
typedef struct
{
char photo_suffix[20];//照片后缀
char photo_second[20];//照片播放多少秒
}circulate_photo;
circulate_photo circulate_picture[storage_photo];
3:对于项目中的文件--照片--音乐的存放位置
建议使用相对路径--当前项目所在位置进行放置
别放有空格字符
string prefix = ".\source\\subtitle\\";
string suffix = ".srt";
string name_circulate_photo_srt = prefix + music_name + suffix;
FILE* fp = fopen(name_circulate_photo_srt.c_str(), "r");
4:easyx中的文字可以这样输出
printf("show_title传参的字幕%s\n", text);
RECT r = { srt_display_Left,srt_display_Top, srt_display_Right ,srt_display_Bottom };
settextstyle(font_h, font_w, _T("Consolas"));
settextcolor(BLACK);
setbkmode(TRANSPARENT);
drawtext(text, &r,DT_CENTER | DT_VCENTER | DT_SINGLELINE| DT_NOPREFIX);
5:可以使用这个函数--非柱塞函数来进行控制程序的执行
if ((GetAsyncKeyState(VK_SHIFT) & 0x8000) && (GetAsyncKeyState('S') & 0x8000))//同时按下shift和r继续播放
6:在进行绘制图像时使用beginbatchdraw()等时注意使用endbatchdraw()结束--不然会影响后面的绘图
FlushBatchDraw(); //执行未完成的任务
Sleep(sleep_pause);
end = end + (clock()-start); //每次循环后的毫秒数,进行累加
photo_end = photo_end + (clock() - photo_start);
if (photo_end >= int_circulate_picture[photo_count].picture_second * 1000)//按毫秒进行计算
{
photo_end = 0;
photo_count++;
}
if (musci_judge == 0)
{
EndBatchDraw();//如果退出程序没有结束则会导致其他页面无法显示
return 0;//结束音乐播放
}
7:控制程序的执行时间可用这个函数
clock_t end,start,photo_start,photo_end=0;//注意初始化
start = clock();
8:音乐播放的相关注意事项--别用空格路径
static int define_music(string music_name)//"open D:\\source\\music\\Sign.mp3 alias BGM"
{
string prefix = "open D:\\source\\music\\";
string suffix = ".mp3 alias BGM";
string define_music_name = prefix + music_name + suffix;
cout << "音乐播放中的处理后的名字为" << define_music_name << endl;
//char File_name[] = "open D:\\source\\music\\Sign.mp3 alias BGM";//"D:\source\music\我只在乎你_邓丽君.mp3"
mciSendString(define_music_name.c_str(), NULL, NULL, NULL);//D:\\source\\music\\Marshmello_Anne_FRIENDS(V0).mp3
mciSendString("play BGM", 0, 0, 0);//不能增加wait//否则会阻塞
return 0;
}