c++封装的一个播放音频类

 

Code:
  1. // 音频播放类   
  2. // Player.h   
  3. #include <mmsystem.h>     
  4. #include <windows.h>   
  5. #include "assert.h"   
  6. #pragma comment(lib,"Winmm.lib")     
  7. class Player     
  8. {   
  9.   
  10. public:   
  11.   
  12. // 函数调用入口   
  13.     // 播放、暂停、停止等接口   
  14. void Play(TCHAR *lpszAction);   
  15. // 获取文件路径名入口   
  16. void GetShortName(TCHAR *lpszPathName);   
  17.   
  18. public:   
  19.     Player();   
  20.     virtual ~Player();   
  21.   
  22.     // 私有成员变量   
  23. private:   
  24.     TCHAR m_ShortName[MAX_PATH];   
  25.     TCHAR m_LongName[MAX_PATH];   
  26.     TCHAR m_SongLength[30];   
  27.     TCHAR m_CurPosition[30];   
  28.     TCHAR m_Status[256];//当前状态    
  29.     BOOL m_ifPause; //暂停标记    
  30.     BOOL m_ifStop;//停止标记   
  31.     int m_iLength;//歌曲长,用秒表示的    
  32.     int m_iCurPosition;//当前位置    
  33.     int m_iVolume;   
  34.   
  35.     // 私有成员函数   
  36. private:   
  37.     void ConvertToShortName();   
  38.     void PlayerAction(TCHAR *lpszAction);   
  39.   
  40.   
  41. };   
  42.   
  43.   
  44. // Player.cpp   
  45. #include "Player.h"   
  46. Player::Player()   
  47. {   
  48.     BOOL m_ifPause = FALSE; //暂停标记    
  49.     BOOL m_ifStop = TRUE;//停止标记   
  50. }   
  51.   
  52. Player::~Player()   
  53. {   
  54.        
  55. }   
  56.   
  57. // 播放、暂停、停止通用接口   
  58. void Player::Play(TCHAR *lpszAction)   
  59. {   
  60.   
  61.     PlayerAction(lpszAction);   
  62. }   
  63.   
  64. void Player::GetShortName(TCHAR *lpszPathName)   
  65. {   
  66.     if (m_ifPause)   
  67.         return;   
  68.     if (!m_ifStop)   
  69.         PlayerAction("stop");   
  70.     wsprintf(m_LongName, "%s", lpszPathName);   
  71.     GetShortPathName(m_LongName,m_ShortName,sizeof(m_ShortName)/sizeof(TCHAR));   
  72.        
  73. }   
  74.   
  75. // 音乐器的操作   
  76. void Player::PlayerAction(TCHAR *lpszAction)   
  77. {   
  78.        
  79.     TCHAR buffer[MAX_PATH];       
  80.     TCHAR Commad[MAX_PATH];      
  81.     // 初始化数组   
  82.     ZeroMemory(buffer, sizeof(buffer));   
  83.     ZeroMemory(Commad, sizeof(Commad));   
  84.     // 命令   
  85.     //assert(m_ShortName);   
  86.     wsprintf(Commad,"%s %s",lpszAction,m_ShortName);       
  87.     if (mciSendString(Commad, buffer, sizeof(buffer), NULL) != 0)      
  88.         MessageBox(NULL, lpszAction, TEXT("错误"), MB_OK | MB_ICONERROR);   
  89.         return;   
  90.   
  91.     if (0 == strcmp(lpszAction, "pause"))   
  92.     {   
  93.         m_ifPause = TRUE;   
  94.     }   
  95.   
  96.     else if (0==strcmp(lpszAction, "stop"))   
  97.     {   
  98.         m_ifStop = TRUE;   
  99.         m_ifPause = FALSE;   
  100.     }   
  101.   
  102.     else if(0 == strcmp(lpszAction, "play"))   
  103.     {   
  104.         m_ifStop = FALSE;   
  105.         m_ifPause = FALSE;   
  106.     }   
  107. }   

 

你可能感兴趣的:(C++,null,buffer,音乐,Path)