我有一个 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/