我一直在努力实现媒体播放器自动化。几乎尝试了我所知道的每一种可能的方式,但都没有成功。下面列出的尝试不多。
CLSCTX_LOCAL_SERVER,我总是得到class not registered error。IWMPPlayer4,openPlayer()方法确实可以在该方法上工作,打开WMP并开始播放剪辑。但是任何其他的信息都不会到达WMP。例如:
pMediaPlayerSettings= NULL;hr = pMediaPlayer4->get_settings(&pMediaPlayerSettings);if(FAILED(hr)) { std::cout << "ERR -无法获得WMPSettings接口指针“<< std::endl;ReleaseInterfaces((IUnknown**)&pMediaPlayer4);返回0;} std::cout <<”IWMPSettings设置.让我们更改卷“<< std::endl;int cnt = 10;而(cnt> 1) { long vol = -1.0;Sleep(2000);hr =pMediaPlayerSettings->get_ << (& vol );如果(FAILED( hr )){ std::cout << "ERR -无法更改卷”<< std::endl;}:cout <<“,当前卷是:”<< vol<< std::endl;hr=pMediaPlayerSettings->put_<<(cnt*cnt);ReleaseInterfaces((未知数*) &pMediaPlayerSettings);
这段代码改变了音量,但在正在播放的剪辑中却没有这种效果。Invoke,ing会将消息发送给运行当前剪辑的WMP。也尝试过那个代码,但没有结果。所以我想要的是--我想要的是,有可能吗?
控制媒体播放器的原始代码?任何指针、示例、代码片段都非常受欢迎。我有一个错误的感觉,我已经冲浪了整个网络世界在这个问题上。请证明我错了。
PS:我不想做ActiveX或MFC编码。
发布于 2014-08-17 15:39:35
这个问题与您的应用程序是控制台应用程序这一事实无关。信息泵不在这里。您可以使用Windows应用程序进行相同的尝试,它的行为也会相同。
这是因为在这种情况下,播放机不作为控件(作为OLE控件,在窗口中)托管,因此它只是不受支持。如果您在Windows应用程序或中托管它,您将看到它运行良好。
在此配置中,如果要控制卷,则应使用音量音频API (特别是ISimpleAudioVolume)。
https://stackoverflow.com/questions/25347625
复制相似问题