首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确配置QuickTime控件

正确配置QuickTime控件
EN

Stack Overflow用户
提问于 2010-03-15 15:34:45
回答 1查看 1.2K关注 0票数 3

我目前正在为Windows平台开发一个应用程序,它可以播放快速时间视频。目标操作系统版本是Windows、Windows和Windows 7。

我成功地使用了Apple ActiveX QuickTime Control2.0(在C#中),一切都在Windows上运行良好。

然而,在Vista和Windows 7上,我面临着正确处理控件的问题。以下是“复制步骤”:-我在运行时动态创建快速时间控件,并将其放在面板上;

  • I成功地使用它播放视频;在某个时候我关闭了应用程序的主表单;应用程序窗口被销毁,应用程序将继续在后台运行(像同步视频那样的操作);此时控件被使用IDisposable模式处理;我不能显式地释放Movie对象(从ActiveX控件中),因为我得到了一个异常:“无法使用与其底层RCW分离的COM对象。”;我只是使用(AxQTOControlLib.AxQTControl) player.Dispose();在Windows上,这很好,但在Vista和7
  • 上,我恢复我的应用程序(从它在后台运行的工具栏)并尝试再次打开视频;此时抛出一个AccessViolationException“试图读取/写入受保护的内存”;

我的问题是:

  • 为什么只在Vista和Windows 7上发生这种情况? XP上的
  • 是隐藏的漏洞?
  • 是在运行时创建控件(及其电影对象)的推荐方法?

现在,我正在使用一个显式的Movie.Disconnect()调用(尽管我现在不知道这种断开意味着什么,因为我找不到合适的文档),在表单关闭之前,QuickTimeTerminate()调用允许了这个调用。虽然我的方法是有效的,这是一种设计破坏,所以我想知道一个更好的方法来做这件事。

谢谢你,莫苏

更新:我刚刚发现我的方法不可行。我习惯于播放器: QuickTime控件和控件(都是ActiveX),当其中一个不能播放一个文件时,使用另一个。我看到了WindowsMedia播放器的输出,并认为这种方法是可行的。所以我的解决办法根本没用。

EN

回答 1

Stack Overflow用户

发布于 2012-10-10 18:54:16

很多人似乎都犯了这个错误。

这个页面提供了一个有趣的方法:http://www.theusenetarchive.com/usenet-message-how-to-properly-destroy-quicktime-activex-object-10384503.htm

发生崩溃是因为文件句柄仍然处于打开状态。我通过将空字符串连接到FileName或URL属性从Quicktime控件中“卸载”电影。无法正确地处理此问题,并使原始文件处于打开状态。因此,相反,我连接了一个路径到一个实际的图像文件(Quicktime也做图像),这都是黑色的。现在似乎一切都好了。--

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2448325

复制
相关文章

相似问题

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