在 MFC 中播放动画

Posted

技术标签:

【中文标题】在 MFC 中播放动画【英文标题】:Playing animation in MFC 【发布时间】:2013-10-31 05:44:37 【问题描述】:

在 MFC 对话框中,有一个控件用于播放 .avi 文件等动画。 问题是我想暂停并恢复播放 avi。 使用播放方法可以从特定帧开始,并停止它。 问题是如何获得 .avi 停止播放的帧号

【问题讨论】:

【参考方案1】:

您无法获得实际的帧号,但您可以使用(经过测试但未记录的)hack 将 -1 指定为 Play()nFrom 参数作为恢复 AVI 的一种方式从你停下来的地方。

例如,假设m_aviCAnimateCtrl 的一个实例:

// toggle pause
if (m_avi.IsPlaying())

    // if playing, pause
    m_avi.Stop();

else

    // not playing, resume
    m_avi.Play( -1, -1,-1 );

在我的系统上测试(带有 UNICODE 版本的 VS2012,在 64 位 Windows 8.1 上运行),这工作正常 - Play 从上次停止的位置继续。

【讨论】:

【参考方案2】:

如果您想继续播放,只需传递 nTo=-1 即可播放到剪辑的结尾。如果您想继续播放,但只在某个特殊帧之前,您需要在视频编辑器中加载视频以获取停止播放的帧数。

【讨论】:

以上是关于在 MFC 中播放动画的主要内容,如果未能解决你的问题,请参考以下文章

基于MFC的动画图形实现对话框

猎豹MFC--图片控件CStatic和动画控件CAnimateCtrl

控制人物转向移动,动画播放的过程中插播其他动画后返回

我的动画没有在应该播放的时候播放

在Vue中使用GSAP完成动画(四)播放组件

unity中怎么用代码控制动画播放