Jason
Jason

Reputation: 89129

displaying subtitles for a video in a WPF MediaElement

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.

Upvotes: 0

Views: 5530

Answers (2)

Alexander Zwitbaum
Alexander Zwitbaum

Reputation: 4846

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.

Upvotes: 0

Charlie
Charlie

Reputation: 15247

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.

Upvotes: 2

Related Questions