⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 midi.h

📁 一个界面简单的mid文件播放器MIDI VC,有测试音乐
💻 H
字号:
/****************************************************************/
/*      MIDI静态联结库    HugeSoft工作室    1999年7月制作       */
/*                                作者:MMX                      */
/*      本库封装用于播放MIDI文件的windows API,可方便的          */
/*      播放MIDI文件.                                           */
/*      例如播放MIDI文件在WM_CREATE:中插入以下格式:             */
/*          打开MIDI文件:MID_Open(FileName);                   */
/*          播放MIDI文件:MID_Play();即可播放                   */
/*      需在Project的Setting的Link选项中加入midi.lib            */
/*      vfw32.lib winmm.lib 的联结                              */
/*      适用于Win95/Win98/WinNT4.0,VC 5.0或VC 6.0编程.          */
/*      如有问题,请e-mail:mmx_hugesoft@163.net                 */
/****************************************************************/

#include <windows.h>
#include <windowsx.h>
#include <vfw.h>

#ifdef __cplusplus
/* Assume C declarations for C++ */
extern "C" { 
#endif

/*    函数名:MID_GetDevices                        */
/*    作用:返回系统配置的支持MIDI的输出设置数目    */
/*    参数:无                                      */
/*    返值:系统配置的支持MIDI的输出设置数目        */
	extern int MID_GetDevices (void);
	
/*    函数名:MID_Open                              */
/*    作用:打开设备                                */
/*    参数:无                                      */
/*    返值:成功为TRUE,失败为FALSE                 */
	extern BOOL MID_Open (char *);
	
/*    函数名:MID_Close                             */
/*    作用:关闭文件并关闭MCI设备                   */
/*    参数:无                                      */
/*    返值:无                                      */
	extern void MID_Close (void);
	
/*    函数名:MID_Play                              */
/*    作用:从当前位置播放文件                      */
/*    参数:无                                      */
/*    返值:成功为TRUE,失败为FALSE                 */
	extern BOOL MID_Play (void);
	
/*    函数名:MID_Stop                              */
/*    作用:停止播放文件                            */
/*    参数:无                                      */
/*    返值:无                                      */
	extern void MID_Stop (void);
	
/*    函数名:MID_Pause                             */
/*    作用:暂停播放文件                            */
/*    参数:无                                      */
/*    返值:无                                      */
	extern void MID_Pause (void);
	
/*    函数名:MID_GetTotalLength                    */
/*    作用:指出MIDI文件的总长度                    */
/*    参数:int* pnMinutes,函数失败为-1             */
/*          int* pnSeconds,函数失败为-1             */
/*    返值:无                                      */
	extern void MID_GetTotalLength (int *, int*);
	
/*    函数名:MID_GetMinutes                        */
/*    作用:返回用分钟表示的MIDI文件当前位置        */
/*    参数:无                                      */
/*    返值:失败为-1                                */
	extern int MID_GetMinutes (void);
	
/*    函数名:MID_GetSeconds                        */
/*    作用:返回用秒表示的MIDI文件当前位置          */
/*    参数:无                                      */
/*    返值:失败为-1                                */
	extern int MID_GetSeconds (void);
	
/*    函数名:MID_IsPlaying                         */
/*    作用:返回所向播放状态并提供暂停状态          */
/*    文件暂停时IsPlaying()返回TRUE                 */
/*    参数:BOOl* bPaused                           */
/*	返值:文件暂停时IsPlaying()返回TRUE         */
/*            否则为FALSE                           */
	extern BOOL MID_IsPlaying (BOOL *);
	
/*    函数名:MID_SeekTo                            */
/*    作用:选择MIDI文件内的特定位置,              */
/*          如文件正在播放,将重置                  */
/*    参数:int nMinute,int nSecond                 */
/*    返值:成功为TRUE,失败为FALSE                 */
	extern BOOL MID_SeekTo (int, int);
	
/*    函数名:MID_SkipForWard                       */
/*    作用:使文件向前跳n秒,如文件正在             */
/*          播放,将重置                            */
/*    参数:int nSecond                             */
/*    返值:无                                      */
	extern void MID_SkipForward (int);
	
/*    函数名:MID_SKipBack                          */
/*    作用:使文件向后跳n秒,如文件正在             */
/*          播放,将重置                            */
/*    参数:int nSecond                             */
/*    返值:无                                      */
	extern void MID_SkipBack (int);
	
/*    函数名:MID_GetDivisionTpe                    */
/*    作用:判断MIDI文件的类型                      */
/*    参数:无                                      */
/*    返值:类型为MCI_SEQ_DIV_PPQN,返回0,          */
/*          否则为-1                                */
	extern int MID_GetDivisionType (void);
	
/*    函数名:MID_GetTempo                          */
/*    作用:返回MIDI文件的播放速度                  */
/*    参数:无                                      */
/*    返值:int nTempo                              */
	extern int MID_GetTempo (void);
	
/*    函数名:MID_GetTempo                          */
/*    作用:改变MIDI文件的播放速度                  */
/*    参数:int nTempo                              */
/*    返值:无                                      */
	extern void MID_SetTempo (int);
	
	extern BOOL m_bOpened, m_bPaused, m_bPlaying;
	extern WORD m_wDeviceID;
#ifdef __cplusplus
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -