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

📄 audio.cpp

📁 一个完整的数字硬盘录像机系统软件
💻 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 + -