2009-07-29 40 views
0

私はワークフローの一部としてビデオクリップを表示するWPFアプリケーションを開発しています。私はこれを、MediaElementを使ってローカルにホストされた(ストリーミングされていない)AVIファイルを再生することによって行っています。よく働く。WPF MediaElementのビデオの字幕を表示

ただし、クリップの再生中に字幕を表示できるようにするという新しい要件がありました。私はこれについて最善の方法を知りません。 WPFがこれをサポートしているかどうかわからないのですが、WMPにはクリップが再生されているときに別々の字幕ファイルを表示する機能があることを漠然と認識していますか?

WPFでこれをネイティブに行うことはできますか?そうでない場合、私の選択肢は何ですか?

私の代替アプローチでは、クライアントが字幕をビデオファイルに直接書き込む必要がありますが、これを処理するにはより良い方法を見つけることをお勧めします。

答えて

1

字幕の要件がMediaElementをオーバーレイするテキストになっている場合は、WPFが確実にこれをサポートできます。 TextBlockと一緒にGrid内にMediaElementを配置するだけで済みます。

実際のトリックは、MediaElementの時間に従ってTextBlock Textプロパティを変更します。しかし、おそらくこれを行う方法はたくさんあります。最初に気になるのは、MediaElement.Positionプロパティにバインドされたトリガーを使用することです。

+0

私はすべてのタイミングと同期コードを自分で書いたくありません.WMPがすでにこれを処理している場合は、WPFも同様です。しかし、そうでないかもしれない。 – Jason

+0

いいえ、WPFには字幕の「自動」サポートがありません。ただし、MediaElementの上に簡単に追加できる機能です。このリンクを確認してください(例:http://blogs.msdn.com/anilkumargupta/archive/2009/05/01/playing-subtitles-with-videos-in-silverlight.aspx)。 – Charlie

0

WPFでは、字幕ファイルを解析して同期する必要があります.MarkerReachedのようなイベントはSilverlightにはありません。しかし、あなたのビデオと同じファイル名のsmi(SAMIファイル)を作成し、それを同じフォルダに入れることができます。その後、ScriptCommandイベントを購読し、オーバーレイテキストブロックにコンテンツを表示します。

関連する問題