C语言实现可视化的注意事项

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;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值