注册机大伙都有用过,其背景音乐挺炫酷,普遍被软件作者认为是一种炫耀。
自己也搞了个注册类似的软件,想加入一背景音乐。
功能一样,也是越简单越好:
软件启动播放,软件退出停止播放。
音频文件越小越好,嵌入到软件中使用。
背景用音频文件倒是很多,随处可下。
xm格式发现其占用空间最小,音质很好。
这也是被注册机大量选择原因。
VS自带函数PlaySong直接支持WAV格式。
本想直接使用,使用时发现文件过大,播放不了。
常见格式音频播放源代码以前有搞过,又闲功能太臃肿。
另外将看中的XM转换为常见格式如WAV,MP3,十几K直接变量十几M,1000位左右增大,
一堆的原因,决定最终选择使用XM格式的音频文件。
找了半天没个好的库,还都是2002年以前的网页与资源。
这里分享自己修改后的能播放XM格式音乐的库,功能简单,
当然格式支持还很多,没需求就没去用。
集成为一个类CMusic供使用。
类就搞三个函数供调用,越简单越好。
bool PlayMusic(int nSourceID,CString sSourceType);
bool PlayMusic(CString sFileName);
bool StopMusic();
两个函数PlayMusic,可以分别播放现有的音频文件或导入到程序的资源文件。
播放后一直循环播放背景音乐直到调用StopMusic函数。
例程源代码提供下载:
例程使用VS2010在WIN10,64位系统上编写与测试。
例程界面如下:
一播放按钮播放例程同级目录下的XM文件Sound.xm。
一播放按钮播放导入在程序内的指定音频资源。
可以自由来回点击切换播放。
还有一个停止按钮,可以停止播放音乐。
如果自己想搞成注册机形式的,这些按钮就不需要了。
例程是对集成类的使用。
就三个按钮代码,使用上超级简单。
如下:
- #include "Music.h"
- CMusic Music;
- void CTestDlg::OnBnClickedButton1()
- {
- char c[MAX_PATH];
- GetModuleFileName(NULL,c,MAX_PATH);
- CString sFile(c);
- sFile = sFile.Left( sFile.ReverseFind('\\') );
- sFile+=_T("\\Sound.xm");//播放程序同级目录下的音频文件;
- Music.PlayMusic(sFile);
- }
- void CTestDlg::OnBnClickedButton2()
- {
- Music.StopMusic();
- }
- void CTestDlg::OnBnClickedButton3()
- {
- Music.PlayMusic(131,_T("GKBC8_COM"));
- }
复制代码 在使用资源ID时要注意一下函数参数含义,
如代码Music.PlayMusic(131,_T("GKBC8_COM"));
GKBC8_COM对应下图标识一,资源视图中导入资源时生成的文件夹,
131对应下图标识2,资源视图中导入资源时生成的名称其对应的ID。
搜索此名称,可以在Resource.h文件中找到此名称对应的ID.
在使用资源ID时要注意一下
就这简单的两函数调用就实现了软件背景音乐的添加。
功能已达到自己目的,可以制作注册机了。
更多功能欢迎下载自己完善。
|