在WPF MediaElement中显示视频的字幕

时间:2009-07-29 20:25:07

标签: wpf mediaelement subtitle

我正在开发一个WPF应用程序,它将视频剪辑显示为工作流程的一部分。我这样做是通过使用MediaElement播放本地托管(非流式)AVI文件。效果很好。

然而,我刚刚提出了一项新要求,允许在剪辑播放时显示字幕。我不知道最好的办法。我模糊地意识到WMP能够在播放剪辑时显示单独的字幕文件,但我不知道WPF是否支持此功能?

我可以在WPF中本地执行此操作吗?如果没有,我的选择是什么?

我的后备方法是要求客户将字幕直接烘焙到视频文件中,但我更愿意找到更好的方法来处理这个问题。

2 个答案:

答案 0 :(得分:1)

好吧,如果您对字幕的要求只是覆盖MediaElement的文本,那么是的,WPF当然可以支持这一点。您只需将MediaElement与TextBlock一起放在Grid中。

真正的技巧是根据MediaElement中的时间更改TextBlock Text属性。但是可能有很多方法可以做到这一点;首先想到的是使用绑定到MediaElement.Position属性的触发器。

答案 1 :(得分:0)

在WPF中,您需要解析字幕文件并进行同步,您在Silverlight中没有像MarkerReached这样的事件。但您可以创建一个与视频具有相同文件名的smi(SAMI文件)并将其放在同一文件夹中。然后订阅ScriptCommand事件并在叠加文本块中显示内容。