Beispiel #1
0
bool CDAudio::Play(int no)
{
	if (!IsOpen)
		return false;

	Stop();
	PlayTrack = no;

	no++;		// 这里是以MixedCD为基准,所以播放1首乐曲

	// 检查乐曲长度
	// 设定只播放此范围

	TCHAR	request[64];
	_stprintf(request, _T("length track %d"), no);

	TCHAR	result[128];
	if (!MciStatus(request, result, sizeof(result)))
		return false;

	_stprintf(request, _T("from %d:00:00:00 to %d:%s"), no, no, result);
	if (!MciPlay(request))
		return false;
	return true;
}
Beispiel #2
0
bool CWaveOut::Play(LPCTSTR name)
{
	Stop();

	if (!MciOpen(_T("waveaudio"), name))
		return false;

	if (!MciPlay(_T("")))
		return false;

	playing = true;

	return true;
}
Beispiel #3
0
void CMidi::PlayFile()
{

  DWORD dwReturn;
  MCI_OPEN_PARMS mciOpenParms;
  char mciErrorString[MCI_ERROR_LENGTH];
  UINT mciErrorLen;
  BOOL KnownError = FALSE;

  Close();

  mciOpenParms.lpstrDeviceType = "sequencer";
  mciOpenParms.lpstrElementName = LPCSTR(m_sMidiFile);
  if (dwReturn = mciSendCommand(NULL, MCI_OPEN,
      MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,
      (DWORD)(LPVOID) &mciOpenParms))
  {
      mciErrorLen = MCI_ERROR_LENGTH;
      KnownError = mciGetErrorString(dwReturn, mciErrorString, mciErrorLen);
      TRACE("Couldn't Open Midi Device in constructor\n");
      if (KnownError)
        TRACE("MCI ERROR : %s\n", mciErrorString);
      else
        TRACE("MCI ERROR : Unknown Error (%x)!!!!! \n",dwReturn);

      // Failed to open device. Don't close it; just return error.
      m_bMidiInitialized = FALSE;
      return;
  }

  // The device opened successfully; get the device ID.
  m_uMCIDeviceID = mciOpenParms.wDeviceID;
  m_bMidiInitialized = TRUE;

  MciPlay();
}
Beispiel #4
0
LRESULT CMidi::CallBack(WPARAM wFlags,LPARAM lDevID)
{
  if ((wFlags & MCI_NOTIFY_SUCCESSFUL) && (UINT)lDevID == m_uMCIDeviceID)
	MciPlay();
  return 0;
}
Beispiel #5
0
void CMidi::UnMute()
{
  m_bMute=FALSE;
  MciPlay();
}