首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AxWindowsMediaPlayer图像幻灯片

AxWindowsMediaPlayer图像幻灯片
EN

Stack Overflow用户
提问于 2013-09-05 16:53:39
回答 1查看 2.2K关注 0票数 1

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

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-18 22:12:43

在PlayStateChange事件处理程序中,检测'newState == 3‘(播放)。

在此之后,调用wmp.Ctlcontrols.pause()并启动计时器。在timer.Tick事件发布中暂停媒体项目。

释放暂停调用wmp.Ctlcontrols.play(),但要完全满足。这将再次触发"newState == 3“。

此外,计时器间隔应减为5秒,并且不能将幻灯片设置为小于5秒。

示例波纹管没有经过测试,但我实现了如下所示:

代码语言:javascript
复制
    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();
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18641902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档