Question

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.

Was it helpful?

Solution

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.

OTHER TIPS

In WPF you need to parse the subtitles file and synchronize, you don't have the event like MarkerReached in the Silverlight. But you can create a smi (SAMI-file) with the same filename as your video and put it in the same folder. Then subscribe to the ScriptCommand event and show the content in the overlay textblock.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top