AxWindowsMediaPlayer可用于向用户显示图像。如果将URL设置为example.png,则图像将显示给用户5秒(从Ctlcontrols.currentPosition值读取)。
虽然图像将显示给用户5秒,但是"currentMedia.duration“的值等于0。此外,您不能使用setItemInfo来设置持续时间来计算您想要的值。
是否有任何方式显示图像给用户使用AxWindowsMediaPlayer为例。375秒?有什么简单的方法可以改变不同图像的间隔,还是在某个硬编码常数的某个地方?
我相信更好的解决方案是使用不同的组件(例如。pictureBox和timer),但是我正在寻找使用AxWindowsMediaPlayer的解决方案。我相信,改变目前的立场,需要一段时间,就可以实现理想的行为:-) --但我想避免这种情况。
Prereq: WinForms,.NET 4.0,WMP 12 for Windows 7
非常感谢
发布于 2013-09-18 22:12:43
在PlayStateChange事件处理程序中,检测'newState == 3‘(播放)。
在此之后,调用wmp.Ctlcontrols.pause()并启动计时器。在timer.Tick事件发布中暂停媒体项目。
释放暂停调用wmp.Ctlcontrols.play(),但要完全满足。这将再次触发"newState == 3“。
此外,计时器间隔应减为5秒,并且不能将幻灯片设置为小于5秒。
示例波纹管没有经过测试,但我实现了如下所示:
private System.Windows.Forms.Timer timer;
private void OnPlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
switch (e.newState)
{
case 3:
if (!timer.Enabled)
{
this.player.Ctlcontrols.pause();
this.timer.Interval = (37 - 5) * 1000; // 37 seconds
this.timer.Start();
}
break;
}
}
protected override void OnTimerTick(object sender, EventArgs e)
{
this.player.Ctlcontrols.play();
this.timer.Stop();
}https://stackoverflow.com/questions/18641902
复制相似问题