HiEasyX  Ver 0.3.0
EasyX 全面扩展库
HiEasyX::MusicMCI类 参考

#include <HiMusicMCI.h>

Public 成员函数

 MusicMCI () noexcept
 默认构造函数 更多...
 
virtual ~MusicMCI ()
 虚析构函数 更多...
 
bool open (LPCWSTR music) noexcept
 打开音乐 更多...
 
bool play () noexcept
 播放音乐 更多...
 
bool pause () noexcept
 暂停音乐 更多...
 
bool stop () noexcept
 停止播放 更多...
 
bool close () noexcept
 关闭音乐 更多...
 
bool getCurrentTime (DWORD &pos) noexcept
 获取当前播放时间 更多...
 
bool getTotalTime (DWORD &time) noexcept
 获取音乐总时长 更多...
 
bool setVolume (size_t volume) noexcept
 设置音量大小 更多...
 
bool setStartTime (size_t start) noexcept
 设置播放位置 更多...
 

详细描述

    MusicMCI(音乐播放操作层)
    支持播放、暂停、设置音量、获取播放时间等操作

在文件 HiMusicMCI.h19 行定义.

构造及析构函数说明

◆ MusicMCI()

HiEasyX::MusicMCI::MusicMCI ( )
noexcept

默认构造函数

在文件 HiMusicMCI.cpp16 行定义.

17  {
18  nDeviceID = -1;
19  }

◆ ~MusicMCI()

HiEasyX::MusicMCI::~MusicMCI ( )
virtual

虚析构函数

在文件 HiMusicMCI.cpp21 行定义.

22  {
23  if (nDeviceID != -1) this->close();
24  }

成员函数说明

◆ close()

bool HiEasyX::MusicMCI::close ( )
noexcept

关闭音乐

在文件 HiMusicMCI.cpp94 行定义.

95  {
96  MCI_GENERIC_PARMS mciGP{};
97 
98  const DWORD dwReturn = mciSendCommand(nDeviceID, MCI_CLOSE,
99  MCI_NOTIFY | MCI_WAIT, (DWORD_PTR)(static_cast<LPVOID>(&mciGP)));
100  if (dwReturn == 0)
101  {
102  nDeviceID = -1;
103  return true;
104  }
105  else
106  return false;
107  }

◆ getCurrentTime()

bool HiEasyX::MusicMCI::getCurrentTime ( DWORD &  pos)
noexcept

获取当前播放时间

在文件 HiMusicMCI.cpp111 行定义.

112  {
113  MCI_STATUS_PARMS mciSP{};
114 
115  mciSP.dwItem = MCI_STATUS_POSITION;
116  const DWORD dwReturn = mciSendCommand(nDeviceID, MCI_STATUS,
117  MCI_STATUS_ITEM, (DWORD_PTR)(static_cast<LPVOID>(&mciSP)));
118  if (dwReturn == 0)
119  {
120  pos = static_cast<DWORD>(mciSP.dwReturn);
121  return true;
122  }
123  else
124  {
125  pos = 0;
126  return false;
127  }
128  }

◆ getTotalTime()

bool HiEasyX::MusicMCI::getTotalTime ( DWORD &  time)
noexcept

获取音乐总时长

在文件 HiMusicMCI.cpp132 行定义.

133  {
134  MCI_STATUS_PARMS mciSP{};
135 
136  mciSP.dwItem = MCI_STATUS_LENGTH;
137  const DWORD dwReturn = mciSendCommand(nDeviceID, MCI_STATUS,
138  MCI_WAIT | MCI_STATUS_ITEM, (DWORD_PTR)(static_cast<LPVOID>(&mciSP))); // 关键,取得长度
139  if (dwReturn == 0)
140  {
141  time = static_cast<DWORD>(mciSP.dwReturn);
142  return true;
143  }
144  else
145  {
146  time = 0;
147  return false;
148  }
149  }

◆ open()

bool HiEasyX::MusicMCI::open ( LPCWSTR  music)
noexcept

打开音乐

在文件 HiMusicMCI.cpp28 行定义.

29  {
30  MCI_OPEN_PARMS mciOP;
31 
32  mciOP.lpstrDeviceType = nullptr;
33  mciOP.lpstrElementName = strSongPath;
34  const DWORD dwReturn = mciSendCommand(0, MCI_OPEN,
35  MCI_OPEN_ELEMENT | MCI_WAIT | MCI_OPEN_SHAREABLE, (DWORD_PTR)(static_cast<LPVOID>(&mciOP)));
36 
37 
38  if (dwReturn == 0)
39  {
40  nDeviceID = mciOP.wDeviceID;
41  return true;
42  }
43  else
44  {
45  nDeviceID = -1;
46  return false;
47  }
48  }

◆ pause()

bool HiEasyX::MusicMCI::pause ( )
noexcept

暂停音乐

在文件 HiMusicMCI.cpp66 行定义.

67  {
68  MCI_GENERIC_PARMS mciGP{};
69 
70  const DWORD dwReturn = mciSendCommand(nDeviceID, MCI_PAUSE,
71  MCI_NOTIFY | MCI_WAIT, (DWORD_PTR)(static_cast<LPVOID>(&mciGP)));
72  if (dwReturn == 0)
73  return true;
74  else
75  return false;
76  }

◆ play()

bool HiEasyX::MusicMCI::play ( )
noexcept

播放音乐

在文件 HiMusicMCI.cpp52 行定义.

53  {
54  MCI_PLAY_PARMS mciPP{};
55 
56  const DWORD dwReturn = mciSendCommand(nDeviceID, MCI_PLAY,
57  MCI_NOTIFY, (DWORD_PTR)(static_cast<LPVOID>(&mciPP)));
58  if (dwReturn == 0)
59  return true;
60  else
61  return false;
62  }

◆ setStartTime()

bool HiEasyX::MusicMCI::setStartTime ( size_t  start)
noexcept

设置播放位置

在文件 HiMusicMCI.cpp177 行定义.

178  {
179  DWORD end_time = 0;
180  this->getTotalTime(end_time);
181 
182  if (start_time > end_time)
183  return false;
184 
185  MCI_PLAY_PARMS mciPlay{};
186  mciPlay.dwFrom = static_cast<DWORD>(start_time);
187  mciPlay.dwTo = static_cast<DWORD>(end_time);
188  const DWORD dwReturn = mciSendCommand(nDeviceID, MCI_PLAY,
189  MCI_TO | MCI_FROM, (DWORD_PTR)(static_cast<LPVOID>(&mciPlay)));
190 
191  if (dwReturn == 0)
192  return true;
193  else
194  return false;
195  }

◆ setVolume()

bool HiEasyX::MusicMCI::setVolume ( size_t  volume)
noexcept

设置音量大小

在文件 HiMusicMCI.cpp153 行定义.

154  {
155  if (nVolumeValue > 1000)
156  {
157  nVolumeValue = 1000;
158  }
159  else if (nVolumeValue < 0)
160  {
161  nVolumeValue = 0;
162  }
163 
164  MCI_DGV_SETAUDIO_PARMS mciDSP;
165  mciDSP.dwItem = MCI_DGV_SETAUDIO_VOLUME;
166  mciDSP.dwValue = static_cast<DWORD>(nVolumeValue);
167  const DWORD dwReturn = mciSendCommand(nDeviceID, MCI_SETAUDIO,
168  MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM, (DWORD_PTR)(static_cast<LPVOID>(&mciDSP)));
169  if (dwReturn == 0)
170  return true;
171  else
172  return false;
173  }

◆ stop()

bool HiEasyX::MusicMCI::stop ( )
noexcept

停止播放

在文件 HiMusicMCI.cpp80 行定义.

81  {
82  MCI_SEEK_PARMS mciSP{};
83 
84  const DWORD dwReturn = mciSendCommand(nDeviceID, MCI_SEEK,
85  MCI_WAIT | MCI_NOTIFY | MCI_SEEK_TO_START, (DWORD_PTR)(static_cast<LPVOID>(&mciSP)));
86  if (dwReturn == 0)
87  return true;
88  else
89  return false;
90  }

该类的文档由以下文件生成:
HiEasyX::MusicMCI::getTotalTime
bool getTotalTime(DWORD &time) noexcept
获取音乐总时长
Definition: HiMusicMCI.cpp:132
HiEasyX::MusicMCI::close
bool close() noexcept
关闭音乐
Definition: HiMusicMCI.cpp:94