可以用MFC制作。以前我们只学过一点点,全是API之类的。最好能给出制作步骤和过程。谢了!
解决方案 »
- SetForegroundWindow后窗口的状态
- 能否用Socket进行串口通信?
- 100分绝对不多,请推荐一本数据结构的书,用C或C++实现的。一本好书可以少走很多路。真心感谢。跟贴给分
- 【公告】enoloo请辞,批准!
- 有会asynchronous pluggable protocol handler (APPH)的帮帮忙吗?谢谢。
- ATL做的ActiveX控件注册问题
- 还是不能编译,怎么回事?
- 如何改变combo的值?
- GetClientRect这个值等于多少
- 急!!如何获得一个目录下最新文件的文件名?
- 那位能描述一下"Cancel对话框"的实现步骤?
- 使用visual assist的小问题
[代码作者] 黄利龙
[文件大小] 49K
[更新日期] 2003-6-12 19:39:00
[下载次数] 3868 去
http://www.vckbase.com/code/listcode.asp?mclsid=7&sclsid=707
下载吧!
c:\program files\microsoft visual studio\vc98\include\mmsystem.h(3743) : fatal error C1070: mismatched #if/#endif pair in file 'c:\program files\microsoft visual studio\vc98\include\mmsystem.h'
是不是VC的系统有问题啊?
还有一般说来VC下的include 里面应该有一个“stdafx.h”的文件,可是在机子里却没有。
IMediaControl *pMediaControl;
IMediaPosition *pMediaPos;
IMediaEvent *pEvent;
IVideoWindow *pVW = NULL;
***********************************************
REFTIME length;
WCHAR path[MAX_PATH];
CButton *button1= (CButton *)GetDlgItem(IDC_BUTTON1);
if(button1)
{
button1->EnableWindow(FALSE);
} TCHAR filepath[MAX_PATH];
strcpy(filepath,szFilename);
MultiByteToWideChar(CP_ACP, 0, filepath, -1, path, MAX_PATH); CoInitialize(NULL);
HRESULT hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void **)&pGraph);
if(FAILED(hr))
{
AfxMessageBox("DirectShow initialize failed!");
return;
}
else
{
pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVW);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
pGraph->QueryInterface(IID_IMediaPosition,(void **)&pMediaPos);
pGraph->RenderFile(path, NULL);
pMediaPos->get_Duration(&length); pVW->put_Owner((OAHWND)m_hWnd);
hr = pVW->put_MessageDrain((OAHWND)m_hWnd);
pVW->put_WindowStyle(WS_CHILD|WS_CLIPSIBLINGS);
pVW->SetWindowPosition(0,0,472,320); pMediaControl->Run();
}
pGraph->Release();
CoUninitialize();
打开并播放:
mcexe("open e:\\mp3.mp3 alias PLAYMAX");
mcexe("play PLAYMAX");
关闭:
mcexe("close PLAYMAX");
需要DirectX SDK
IGraphBuilder * pGraph;
IMediaControl *pMediaControl;
IMediaPosition *pMediaPos;
IMediaEvent *pEvent;
IVideoWindow *pVW = NULL;
***********************************************
REFTIME length;
WCHAR path[MAX_PATH];
CButton *button1= (CButton *)GetDlgItem(IDC_BUTTON1);
if(button1)
{
button1->EnableWindow(FALSE);
} TCHAR filepath[MAX_PATH];
strcpy(filepath,szFilename);
MultiByteToWideChar(CP_ACP, 0, filepath, -1, path, MAX_PATH); CoInitialize(NULL);
HRESULT hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void **)&pGraph);
if(FAILED(hr))
{
AfxMessageBox("DirectShow initialize failed!");
return;
}
else
{
pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVW);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
pGraph->QueryInterface(IID_IMediaPosition,(void **)&pMediaPos);
pGraph->RenderFile(path, NULL);
pMediaPos->get_Duration(&length); pVW->put_Owner((OAHWND)m_hWnd);
hr = pVW->put_MessageDrain((OAHWND)m_hWnd);
pVW->put_WindowStyle(WS_CHILD|WS_CLIPSIBLINGS);
pVW->SetWindowPosition(0,0,472,320); pMediaControl->Run();
}
pGraph->Release();
CoUninitialize();