Stereoscopic Player播放器的控制

简介

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

int GetPlaybackState()
{
    int rState = -1;
    CLSID clsid;// 通过 ProgID 取得组件的 CLSID
    HRESULT 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表示暂停。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值