views:

523

answers:

1

I'm working on a WPF application that displays video clips as part of the workflow. I'm doing this by using MediaElement to play locally hosted (not streamed) AVI files. Works great.

However, I was just handed a new requirement to allow the display of subtitles while the clip is playing. I have no idea of the best way to go about this. I'm vaguely aware that WMP has the ability to display separate subtitle files when a clip is playing, but I don't know if WPF supports this?

Can I do this natively in WPF? If not, what are my options?

My fallback approach would be to require the client to bake the subtitles directly into the video file, but I'd prefer to find a better way to handle this.

+1  A: 

Well, if your requirement for subtitles is simply text overlaying the MediaElement, then yes, WPF can certainly support this. You just need to put the MediaElement in a Grid along with a TextBlock.

The real trick will be changing the TextBlock Text property according to the time in the MediaElement. But there are probably a lot of ways to do this; the first that comes to mind is using a trigger bound to the MediaElement.Position property.

Charlie
I don't want to write all the timing and sync code myself - I assume that if WMP already handles this, then WPF would also. But maybe not.
Jason
No, WPF doesn't have "automatic" support for subtitles. It is functionality that can be added quite easily on top of MediaElement, though. Check this link out, for example: http://blogs.msdn.com/anilkumargupta/archive/2009/05/01/playing-subtitles-with-videos-in-silverlight.aspx
Charlie