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

📄 tmplayer.cpp

📁 VOD点歌系统
💻 CPP
字号:
#include "tmplayer.h"
/*--------------------------------------------------------------
*   FUNCTION    :   TMPOpenDriver()
*   DESCRIPTION :   Opens IMPEG32.DLL
*   RETURN      :   non-zero if successful, 0 if failed.
---------------------------------------------------------------*/
void TMPlayer::TMPOpenDriver()
{
   mciOpenParms.lpstrDeviceType = "REELMagic";
   mciErr = mciSendCommand(wDeviceID, MCI_OPEN, MCI_OPEN_TYPE /*| MCI_WAIT*/,
     (DWORD) (LPMCI_OPEN_PARMS) &mciOpenParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   } else
      wDeviceID = mciOpenParms.wDeviceID;
}

/*--------------------------------------------------------------
*   procedure   :   TMPCloseDriver()
*   DESCRIPTION :   Closes IMPEG32.DLL
*   RETURN      :   NONE
---------------------------------------------------------------*/
void TMPlayer::TMPCloseDriver()
{
   mciGenericParms.dwCallback = 0/*DWORD(Handle)*/;
   mciErr = mciSendCommand(wDeviceID, MCI_CLOSE, 0,
              (DWORD) (LPMCI_GENERIC_PARMS) &mciGenericParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPOpen(AnsiString OpenFileName)
{
    mciLoadParms.dwCallback = 0;
    mciLoadParms.lpfilename = OpenFileName.c_str();
    mciErr = mciSendCommand(wDeviceID, MCI_LOAD, MCI_LOAD_FILE,
                    (DWORD) (LPMCI_LOAD_PARMS) &mciLoadParms);
    if(mciErr != 0)
    {
       mciGetErrorString(mciErr, Ret, sizeof(Ret));
       MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
    }
}
void TMPlayer::TMPClose()
{
   mciGenericParms.dwCallback = 0;
   mciErr = mciSendCommand(wDeviceID, MCI_FREEZE, 0,
              (DWORD) (LPMCI_GENERIC_PARMS) &mciGenericParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPPlay()
{
   mciPlayParms.dwCallback = DWORD(Handle);
   mciErr = mciSendCommand(wDeviceID, MCI_PLAY, MCI_NOTIFY/* | MCI_WAIT*/,
               (DWORD) (LPMCI_PLAY_PARMS ) &mciPlayParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPStop()
{
   mciGenericParms.dwCallback = DWORD(Handle);
   mciErr = mciSendCommand(wDeviceID, MCI_STOP, MCI_NOTIFY,
              (DWORD) (LPMCI_GENERIC_PARMS) &mciGenericParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPause()
{
   mciGenericParms.dwCallback = 0;
   mciErr = mciSendCommand(wDeviceID, MCI_PAUSE, 0,
              (DWORD) (LPMCI_GENERIC_PARMS) &mciGenericParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPSetAudioLeft(int value)
{
   mciErr = 0;
   if(value == 0)
   {
      mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO,
                      MCI_DGV_SETAUDIO_LEFT | MCI_SET_OFF,
                      (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &mciDgvSetAudioParms);
   }else if(value == 1){
      mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO,
                      MCI_DGV_SETAUDIO_LEFT | MCI_SET_ON,
                      (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &mciDgvSetAudioParms);
   }
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPSetAudioRight(int value)
{
  mciErr = 0;
  if( value == 0 )
   {
      mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO,
                      MCI_DGV_SETAUDIO_RIGHT | MCI_SET_OFF,
                      (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &mciDgvSetAudioParms);
   }else if( value == 1 ){
      mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO,
                      MCI_DGV_SETAUDIO_RIGHT | MCI_SET_ON,
                      (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &mciDgvSetAudioParms);
   }
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPSetAudioSourceLeft()
{
   mciErr = 0;
   mciDgvSetAudioParms.dwItem = MCI_DGV_SETAUDIO_SOURCE;
   mciDgvSetAudioParms.dwValue = MCI_DGV_SETAUDIO_SOURCE_LEFT;
   mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO,
                   MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM,
                   (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &mciDgvSetAudioParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPSetAudioSourceRight()
{
   mciErr = 0;
   mciDgvSetAudioParms.dwItem = MCI_DGV_SETAUDIO_SOURCE;
   mciDgvSetAudioParms.dwValue = MCI_DGV_SETAUDIO_SOURCE_RIGHT;
   mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO,
                   MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM,
                   (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &mciDgvSetAudioParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPSetAudioOn()
{
   MCI_DGV_SETAUDIO_PARMS s;
   mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO, MCI_SET_ON,
                   (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &s);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPSetAudioOff()
{
   MCI_DGV_SETAUDIO_PARMS s;
   mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO, MCI_SET_OFF,
                   (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &s);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPSetStream(int value)
{
   mciDgvSetAudioParms.dwValue = value;
   mciDgvSetAudioParms.dwItem = MCI_DGV_SETAUDIO_STREAM;

   mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM,
                   (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &mciDgvSetAudioParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPSetAudioVolume(int value)
{
   mciDgvSetAudioParms.dwValue = value;
   mciDgvSetAudioParms.dwItem = MCI_DGV_SETAUDIO_VOLUME;

   mciErr = mciSendCommand(wDeviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE | MCI_DGV_SETAUDIO_ITEM,
                   (DWORD) (LPMCI_DGV_SETAUDIO_PARMS) &mciDgvSetAudioParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
DWORD TMPlayer::TMPGetTimeFormat()
{
   mciDgvStatusParms.dwItem = MCI_STATUS_TIME_FORMAT;

   mciErr = mciSendCommand(wDeviceID, MCI_STATUS, MCI_STATUS_ITEM,
                   (DWORD) (LPMCI_DGV_STATUS_PARMS) &mciDgvStatusParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
      return 0;
   }
   return mciDgvStatusParms.dwReturn;
}
void TMPlayer::TMPSetTimeFormat(AnsiString strTimeFormat)
{
   if(strTimeFormat == "MCI_FORMAT_BYTES")
      mciSetParms.dwTimeFormat = MCI_FORMAT_BYTES;
   else if(strTimeFormat == "MCI_FORMAT_FRAMES")
      mciSetParms.dwTimeFormat = MCI_FORMAT_FRAMES;
   if(strTimeFormat == "MCI_FORMAT_HMS")
      mciSetParms.dwTimeFormat = MCI_FORMAT_HMS;
   else if(strTimeFormat == "MCI_FORMAT_MILLISECONDS")
      mciSetParms.dwTimeFormat = MCI_FORMAT_MILLISECONDS;
   if(strTimeFormat == "MCI_FORMAT_MSF ")
      mciSetParms.dwTimeFormat = MCI_FORMAT_MSF ;
   else if(strTimeFormat == "MCI_FORMAT_SAMPLES")
      mciSetParms.dwTimeFormat = MCI_FORMAT_SAMPLES;

   mciErr = mciSendCommand(wDeviceID, MCI_SET, MCI_SET_TIME_FORMAT,
                   (DWORD) (LPMCI_SET_PARMS) &mciSetParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
void TMPlayer::TMPSetVideoOut(int value)
{ //没有效果不能输出到vga,
  
  mciDgvRmParms.dwCommand = 0x9;
  mciDgvRmParms.dwFlag = 0x41b;
  mciDgvRmParms.dwValue = value;

  mciErr = mciSendCommand(wDeviceID, 0x900, 0x700002,
                  (DWORD) (LPMCI_DGV_RM_PARMS) &mciDgvRmParms);
  if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
DWORD TMPlayer::TMPGetStatusMode()
{
   mciDgvStatusParms.dwItem = MCI_STATUS_MODE;

   mciErr = mciSendCommand(wDeviceID, MCI_STATUS, MCI_STATUS_ITEM,
                   (DWORD) (LPMCI_DGV_STATUS_PARMS) &mciDgvStatusParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
      return 0;
   }
   return mciDgvStatusParms.dwReturn;
}
void TMPlayer::TMPStep()
{
   DWORD Length = TMPLength();
   mciDgvStepParms.dwCallback = DWORD(Handle);
   mciDgvStepParms.dwFrames = Length / 50;
   mciErr = mciSendCommand(wDeviceID, MCI_STEP, MCI_DGV_STEP_FRAMES,
              (DWORD) (LPMCI_DGV_STEP_PARMS) &mciDgvStepParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
DWORD TMPlayer::TMPLength()
{
   mciDgvStatusParms.dwItem = MCI_STATUS_LENGTH;
   mciErr = mciSendCommand(wDeviceID, MCI_STATUS, MCI_STATUS_ITEM,
                   (DWORD) (LPMCI_DGV_STATUS_PARMS) &mciDgvStatusParms);

   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
      return 0;
   }
   return mciDgvStatusParms.dwReturn;
}
DWORD TMPlayer::TMPPositon()
{
   mciDgvStatusParms.dwItem = MCI_STATUS_POSITION;
   mciErr = mciSendCommand(wDeviceID, MCI_STATUS, MCI_STATUS_ITEM,
                   (DWORD) (LPMCI_DGV_STATUS_PARMS) &mciDgvStatusParms);

   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
      return 0;
   }
   return mciDgvStatusParms.dwReturn;
}
void TMPlayer::TMPSetDisplay(HWND handle)
{
   mciOvlyWindowParms.hWnd = handle;
   mciSendCommand(wDeviceID, MCI_WINDOW, MCI_WAIT | MCI_OVLY_WINDOW_HWND,
          (DWORD) (LPMCI_OVLY_WINDOW_PARMS)&mciOvlyWindowParms);
   if(mciErr != 0)
   {
      mciGetErrorString(mciErr, Ret, sizeof(Ret));
      MessageBox(0, Ret, AnsiString(mciErr).c_str(), MB_OK);
   }
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -