[原创]Space C 控件发布 - SPWAV控件[音频播放]
SPWAV 1.0 音频控件:WAV8位音频播放控件 作者:孙靖 版本号:V1.0
声名:此模块核心代码由网友 -- 曾庆伟 提供。原版有后台支持模式,很好,很强大。
而当前版本是经过本人精简后与Space C架构相融合在一起。
本是想做成控件提供,无奈架构需要,牵涉到DOS下的多个中断控制,这样
才致使本Space C 1.1.0.0的发布。目前音频核心功能由本系统提供,以下控件
为本系统功能的外在接口。这意味着此SPWAV控件与普通控制有差别。
说明:使用音频时,一定将MainBack中的Keyboard属性置为0。音频模块和
键盘模块冲突,当前请先这样做。
事件方式:函数指针
相关函数:
void SP_QuitSound(); /* 声音的退出函数 */
int SP_LoadWav(char *file_name, SPWAV *dest); /* 装入指定的WAV文件,返回WAV结构随时供系统播放 */
void SP_PlayWav(SPWAV *dest, UINT8 mode); /* 播放声音的主程序 */
void SP_MoveWav(SPWAV *dest, INT32 Index); /* 调节播放进度 */
void SP_StopWav(SPWAV *dest); /* 暂停音乐播放 */
数据结构如下:
typedef void (*SPWAV_Change)(void *, UINT32);
typedef struct
{
FILE *file_pointer; /* 文件指针 */
INT32 begin_pos; /* 数据区的启始位置 */
INT32 data_count; /* 数据区块数量 */
INT32 data_index; /* 当前播放到的位置 */
INT32 data_left; /* 当前数据区剩余字节数,用于断点续播 */
UINT32 time_constant; /* 时间片大小 */
UINT8 sound_stop; /* 标记暂停播放 */
SPWAV_Change Change; /* 标记事件 */
} SPWAV;
特别注意:结构中的 Change 事件,将是在一个中断中被调用,因此此事件内容不能过
长,并注意在此事件中避免使用其他中断。和画图操作,以免出现画屏等由中断重入造
成的问题。
控件下载:
SPWAV 1.0.rar
(2.83 KB)
效果图:
可以拖动哦,真可以在DOS下做自己的音频播放器啦。加上歌词显示,那个爽啊。
实例代码下载(Space工程):
部分1:
try3.part01.rar
(1 MB)
部分2:
try3.part02.rar
(1 MB)
部分3:
try3.part03.rar
(1 MB)
部分4:
try3.part04.rar
(1 MB)
部分5:
try3.part05.rar
(1 MB)
部分6:
try3.part06.rar
(62.02 KB)