📄 waveplayer.cpp
字号:
// WavePlayer.cpp: implementation of the CWavePlayer class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MyMediaPlayer.h"
#include "WavePlayer.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CWavePlayer::CWavePlayer()
{
m_nDeviceID = 0;
m_nElementID = 0;
m_IsPlay = FALSE;
}
CWavePlayer::~CWavePlayer()
{
if(m_nElementID) {
Stop();
}
if(m_nDeviceID) {
CloseDevice();
}
}
DWORD CWavePlayer::OpenDevice()
{
DWORD dwResult = 0;
if(!m_nDeviceID) {
MCI_OPEN_PARMS mciOpenParms;
mciOpenParms.lpstrDeviceType = (LPSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
//open device
dwResult = mciSendCommand(NULL,MCI_OPEN,
MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_WAIT,
(DWORD)(LPVOID)&mciOpenParms);
m_nDeviceID = mciOpenParms.wDeviceID;
//if(dwResult) DisplayErrorMsg(dwResult);
}
return dwResult;
}
DWORD CWavePlayer::CloseDevice()
{
DWORD dwResult = 0;
if(m_nDeviceID) {
//close device
dwResult = mciSendCommand(m_nDeviceID,MCI_CLOSE,NULL,NULL);
if(dwResult) {
//DisplayErrorMsg(dwResult);
}
else {
m_nDeviceID = 0;
}
}
return dwResult;
}
DWORD CWavePlayer::Play(CWnd *pWnd, LPCSTR pFileName)
{
MCI_OPEN_PARMS mciOpenParms;
memset(&mciOpenParms,0,sizeof(MCI_OPEN_PARMS));
//
mciOpenParms.lpstrElementName = pFileName;
//
DWORD dwResult = mciSendCommand(m_nDeviceID,MCI_OPEN,
MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciOpenParms);
if(dwResult) {
//DisplayErrorMsg(dwResult);
}
else {
//
m_nElementID = mciOpenParms.wDeviceID;
MCI_PLAY_PARMS mciPlayParms;
//
mciPlayParms.dwCallback = (DWORD)pWnd->GetSafeHwnd();
//
dwResult = mciSendCommand(m_nElementID,MCI_PLAY,MCI_NOTIFY,
(DWORD)(LPVOID)&mciPlayParms);
if(dwResult) {
//DisplayErrorMsg(dwResult);
Stop();
}
else {
m_IsPlay = TRUE;
}
}
return dwResult;
}
DWORD CWavePlayer::Stop()
{
DWORD dwResult = 0;
if(m_nElementID) {
dwResult = mciSendCommand(m_nElementID,MCI_CLOSE,NULL,NULL);
if(dwResult) {
//DisplayErrorMsg(dwResult);
}
else {
m_nElementID = 0;
m_IsPlay = FALSE;
}
}
return dwResult;
}
BOOL CWavePlayer::IsPlay()
{
return m_IsPlay;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -