📄 avi_mp3.cpp
字号:
#include "StdAfx.h"
#include "avi_mp3.h"
CAvi_Mp3::CAvi_Mp3()
{
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
{
return;
}
m_pGraph=NULL;
m_pMediaControl=NULL;
m_pMediaPosition=NULL;
}
void CAvi_Mp3::InitMp3()
{
CoCreateInstance(CLSID_FilterGraph, NULL,
CLSCTX_INPROC, IID_IGraphBuilder, (void**)&m_pGraph);
m_pGraph->QueryInterface(IID_IMediaControl, (void**)&m_pMediaControl);
m_pGraph->QueryInterface(IID_IMediaPosition, (void**)&m_pMediaPosition);
m_Media=1;
}
void CAvi_Mp3::InitAvi()
{
CoCreateInstance(CLSID_FilterGraph, NULL,
CLSCTX_INPROC, IID_IGraphBuilder, (void**)&m_pGraph);
m_pGraph->QueryInterface(IID_IMediaControl, (void**)&m_pMediaControl);
m_pGraph->QueryInterface(IID_IMediaEvent,(void**)&m_pEvent);
m_pGraph->QueryInterface(IID_IVideoWindow,(void**)&m_pVM);
m_Media=2;
}
LRESULT CAvi_Mp3::PlayMedia(const char* szMediaFileName)
{
WCHAR wstrSoundPath[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, szMediaFileName, -1, wstrSoundPath, MAX_PATH);
if(S_OK!= m_pGraph->RenderFile(wstrSoundPath, NULL)) //MustBe NULL
MessageBox(NULL,"RenderFile()失败!","ERROR",MB_OK|MB_ICONERROR);
//m_pGraph->RenderFile(L"C:\\\\a3_30.avi", NULL);
if(m_Media==1)m_pMediaPosition->put_CurrentPosition(0);///Play mp3
m_pMediaControl->Run();
return DS_OK;
}
LRESULT CAvi_Mp3::PlayInFullScreen(HWND hWnd)
{
LONG iMode;
static HWND hDrain=0;
m_pVM->get_FullScreenMode(&iMode);
if(iMode==OAFALSE)
{
m_pVM->get_MessageDrain((OAHWND*)&hDrain);
m_pVM->put_MessageDrain((OAHWND)hWnd);
iMode=OATRUE;
m_pVM->put_FullScreenMode(iMode);
} else
{
iMode=OAFALSE;
m_pVM->put_FullScreenMode(iMode);
m_pVM->put_MessageDrain((OAHWND)hDrain);
m_pVM->SetWindowForeground(-1);
}
return DS_OK;
}
CAvi_Mp3::~CAvi_Mp3()
{
/*if (m_pEvent)
m_pEvent->Release();*/
/*if (m_pVM)
m_pVM->Release();*/
if (m_pMediaPosition)
{
m_pMediaPosition->Release();
m_pMediaPosition=NULL;
}
if (m_pMediaControl)
{
m_pMediaControl->Stop();
m_pMediaControl->Release();
m_pMediaControl=NULL;
}
if (m_pGraph)
{
m_pGraph->Release();
m_pGraph=NULL;
}
CoUninitialize();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -