📄 tmplayer.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 + -