c# - mediended 事件的触发是否有任何默认时间间隔?

标签 c# wpf windows media mediaelement

我有一个 WPF 应用程序,它动态加载视频或图像文件(取决于用户的选择,到 MediaElement 控件。 当它是视频并且在结束视频时触发 MediaEnded 事件时它工作正常。 但是当我加载图像时,MediaEnded 事件会在 5 秒内触发。 它是默认值吗?或者我可以以编程方式更改它吗? 是否有任何属性可以更改此间隔或禁用此类选项? 是否可以让它暂停直到执行特定操作?

我设置了如下属性

MediaControl1.LoadedBehavior = MediaState.Manual;
MediaControl1.UnloadedBehavior = MediaState.Manual;

最佳答案

MediaElement 是 Windows Media Player 的一个(非常薄的)包装器(或者更确切地说 - 使用与 Windows Media Player 使用的框架相同的框架)。如果您在 Windows Media Player 中打开图像 - 您会看到它将像幻灯片一样“播放”它(即使是一张图像)大约 5 秒钟。这就是为什么您会在 5 秒内收到 MediaEnded 事件 - Windows Media Player 会在这段时间内用您的图像播放幻灯片。我怀疑是否有一种方法可以从 WPF 中更改它(因为它是外部程序\框架的行为,与 MediaElement 本身无关)而且我不知道如何为 Windows Media Player 更改它(即使有这种方式 - 它也会产生全局影响,您可能不想以这种方式修改您的客户端计算机)。

要解决您的问题 - 不要使用 MediaElement 来显示图像 - 使用类似 Image 的控件。如果您有充分的理由这样做 - 您可以在加载“幻灯片”后使用 Pause 方法暂停 MediaElement,然后它不会触发 MediaEnded 事件。总而言之 - 我无法想象您真的必须为图像使用 MediaElement 的任何用例。

关于c# - mediended 事件的触发是否有任何默认时间间隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46567372/

相关文章:

c# - 模型去哪里了?

C# WPF总是无法连接mysql数据库

c# - 从客户端应用程序上传的 Azure 媒体服务/blob 存储

windows - 如何获得上下文菜单选择的路径?

c - 在windows上用java程序运行c程序

c# - 如何从外部文件显示 C# 源代码?

c# - Java 的静态概念与 C# 的有何不同?

python - Dropbox 如何在 Windows 和 OS X 上使用 Python?

c# - 正在为 C# 中的新任务处理免费资源

.net - Style BasedOn 突然不起作用