Stereoscopic Player播放器的控制

发布时间:2025-12-09 16:31:41 浏览次数:4

简介

Stereoscopic Player播放器的官网提供了VBS的DEMO程序控制播放器,这样就可以打开,停止播放器。这样对于第三的程序控制播放器很方便。但是要在程序代码中获取播放器的状态就不好搞了。这样就不能使用VBS控制了。由于VB脚本是通过调用CreateObject函数来创建COM对象来操作播放器的,这样就可以直接创建COM对象,之后通过IDispatch接口的 Invoke函数来控制播放器。Invoke动态调用的函数的参数和返回类型可以从StereoPlayerInterface.cs文件中获取。下面是获取播放器状态的代码:

int GetPlaybackState(){int rState = -1;CLSID clsid;// 通过 ProgID 取得组件的 CLSIDHRESULT hr = ::CLSIDFromProgID( L"StereoPlayer.Automation", &clsid );CComPtr<IUnknown> spUnk;// 由 CLSID 启动组件,并取得 IUnknown 指针if(SUCCEEDED(hr)){hr = ::CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IUnknown, (LPVOID *)&spUnk );if(SUCCEEDED(hr)){CComDispatchDriver spDisp( spUnk );CComVariant v,vResult;auto_ptr<VARIANT> var(new VARIANT);var->vt = VT_INT;var->dblVal = 0;v.vt = VT_BYREF|VT_VARIANT; //引用类型,表示参数的返回值v.pvarVal = var.get();spDisp.Invoke1(L"GetPlaybackState",&v,&vResult);rState = var->intVal;} }return rState;} 这个函数就可以实时获取播放器的状态,如果返回2表示播放器已经停止,0表示正在播放,1表示暂停。
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477