为使用该控件,首先要将其添加到工程。点击“Project”下“Add to Project”d出的“Components and Controls…”子菜单,并从d出对话框中进入“Registered ActiveX Controls”目录查找并添加Windows Media Player控件到工程。这时以CWMP开头的17个类将被添加到工程。在资源视图中将控件拖动到用来播放多媒体的对话框上并通过ClassWizard将控件与CWMPPlayer4类对象建立关联。CWMPPlayer4类提供了与Windows Media Player控件进行交互的基本方法,而且部分成员函数还能够进一步获取得到其他相关类对象的实例。其中,SetUrl()和close()方法将能够打开和关闭指定的媒体文件。在打开文件之后,能够通过控件上的自带按钮控制媒体的播放、暂停、停止以及对音量的控制等。如果需要在程序中控制媒体的播放,可使用GetControls()函数返回CWMPControls类对象,并进一步调用该对象的play()、stop()、pause()、fastForward()、fastReverse()等方法来完成播放、停止、暂停、快进、快退等相应动作;如果需要在程序中对控件属性进行设置和更改,可在GetSettings()方法返回一个CWMPSettings类的对象后通过其成员函数来完成相应的设置.
我简单介绍使用方法:第一:打开VC,然后在文件按钮中选择新建,然后先建立一个工作区,为了你以后好找到,所以命名时要注意!第二:在左侧栏中刚刚建立的工作区上右击,再点击新建课题,再出现的窗口中点击倒数第三个,选好之后给课题写名。这时左侧栏中又出现一个课题名,双击。出现三个按钮,选中其中一个,右击之后,再右击添加新文件。然后就可以用了。好好学吧。挺有意思的!这是简化代码,我这有完整的,如果要和我说下 #include <Dshow.h>class PlayCore { public: PlayCore(void)virtual ~PlayCore(void)bool SetFile(wchar_t * file_name)bool Play()bool Stop()bool Pause()private: bool _IsLoadFileIGraphBuilder *pGraphIMediaControl *pControlIMediaEvent *pEvent}PlayCore::PlayCore(void) { this->_IsLoadFile = false// Initialize the COM library. HRESULT hr = CoInitialize(NULL)if(FAILED(hr)) { #ifdef _CONSOLE printf("error - Could not initialize COM library")#else MessageBox(NULL,L"error - Could not initialize COM library",L"Error",MB_OK)#endif } //Create the filter graph manager and query for inter interfaces. hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER, IID_IGraphBuilder,(void **)&pGraph)if(FAILED(hr)) { #ifdef _CONSOLE printf("error - Could not create the Filter Graph Manager.")#else MessageBox(NULL,L"error - Conld not create the Filter Graph Manager.",L"Error",MB_OK)#endif } hr = pGraph->QueryInterface(IID_IMediaControl,(void **)&pControl)hr = pGraph->QueryInterface(IID_IMediaEvent,(void **)&pEvent)} PlayCore::~PlayCore(void) { this->pControl->Release()this->pEvent->Release()this->pGraph->Release()CoUninitialize()} bool PlayCore::SetFile(wchar_t *file_name) { //Build the graph. HRESULT hr = pGraph->RenderFile(file_name,NULL)if(SUCCEEDED(hr)) { this->_IsLoadFile = truereturn true} return false} bool PlayCore::Play() { if(! this->_IsLoadFile) return false//Run the graph. HRESULT hr = pControl->Run()if(SUCCEEDED(hr)) { //Wait for completion. long evCodepEvent->WaitForCompletion(1000,&evCode)//Note: Do not use INFINITE in a real application, //because it can block indefinitely. } } bool PlayCore::Pause() { pControl->Pause()return true} bool PlayCore::Stop() { pControl->Stop()return true}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)