📄 audio.cpp
字号:
#include "stdafx.h"
#include "Audio.h"
#include "GtMpeg.h"
//////////////////////////////
//
//////////////////////////////
CAudio::CAudio()
{
m_bOpened = m_bPaused = m_bPlaying = FALSE;
m_wDeviceID = 0;
}
CAudio::~CAudio()
{
}
//////////////////////////////
//
//////////////////////////////
BOOL CAudio::InitAudio(CString sWavFile)
{
CFileFind FileFind;
if(!FileFind.FindFile(sWavFile))
return FALSE;
m_OpenParms.lpstrDeviceType="waveaudio";
m_OpenParms.lpstrElementName=sWavFile.GetBuffer(0);
sWavFile.ReleaseBuffer();
if(mciSendCommand(0,MCI_OPEN,MCI_OPEN_ELEMENT|MCI_OPEN_TYPE,(DWORD)(LPVOID)&m_OpenParms))
return FALSE;
m_wDeviceID = m_OpenParms.wDeviceID;
MCI_STATUS_PARMS mciStatus;
mciStatus.dwItem=MCI_WAVE_STATUS_SAMPLESPERSEC;
if(mciSendCommand(m_wDeviceID,MCI_STATUS,MCI_WAIT|MCI_STATUS_ITEM,(DWORD)(LPVOID)&mciStatus))
{
Close();
return FALSE;
}
m_SampleRate=mciStatus.dwReturn;
m_bOpened = TRUE;
return TRUE;
}
//////////////////////////////
//
//////////////////////////////
BOOL CAudio::Play()
{
MCI_PLAY_PARMS PlayParms;
mciSendCommand(m_wDeviceID,MCI_SEEK,MCI_SEEK_TO_START,NULL);
if(mciSendCommand(m_wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&PlayParms))
return FALSE;
m_bPlaying=TRUE;
return TRUE;
}
//////////////////////////////
//
//////////////////////////////
void CAudio::Pause()
{
if (m_bOpened && m_bPlaying)
{
MCI_PLAY_PARMS PauseParms;
if (mciSendCommand (m_wDeviceID, MCI_PAUSE, 0, (DWORD)(LPVOID) &PauseParms))
return;
m_bPaused = TRUE;
}
}
//////////////////////////////
//
//////////////////////////////
void CAudio::Stop()
{
if (m_bOpened && m_bPlaying)
{
mciSendCommand (m_wDeviceID, MCI_STOP, NULL, NULL);
mciSendCommand (m_wDeviceID, MCI_SEEK, MCI_SEEK_TO_START, NULL);
m_bPlaying = FALSE;
m_bPaused = FALSE;
}
}
//////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////
void CAudio::Close()
{
if (m_bOpened)
{
if (m_bPlaying || m_bPaused)
mciSendCommand (m_wDeviceID, MCI_STOP, NULL, NULL);
mciSendCommand (m_wDeviceID, MCI_CLOSE, NULL, NULL);
m_bOpened = m_bPaused = m_bPlaying = FALSE;
m_wDeviceID = 0;
}
}
//////////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////////
BOOL CAudio::IsPlaying()
{
if(m_bOpened)
{
MCI_STATUS_PARMS StatusParms;
StatusParms.dwItem=MCI_STATUS_MODE;
if(mciSendCommand(m_wDeviceID,MCI_STATUS,MCI_WAIT|MCI_STATUS_ITEM,(DWORD)(LPVOID)&StatusParms))
return FALSE;
if(StatusParms.dwReturn==MCI_MODE_PLAY||StatusParms.dwReturn==MCI_MODE_PAUSE)
return TRUE;
}
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -