18

ビデオを実行するために使用する MediaElement を備えた WPF アプリケーションがあります。ロード時にビデオを自動再生したくないので、LoadedBehavior を Manual に設定します。

<MediaElement LoadedBehavior="Manual" 
              Source="foo.wmv" 
              MediaOpened="videoElement_MediaOpened" />

でも; 要素がロードされたときにビデオの最初のフレームを表示するようにします。これを行う魔法の方法はありますか?

4

3 に答える 3

26

あなたも必要です

ScrubbingEnabled="True"

次に、ロード時にイベントを設定します

Loaded="Video1_Loaded"

Video1_Load メソッドに以下を追加します。

Video1.Play();
Video1.Pause();

play メソッドが呼び出される前に、ビデオ コンテンツはレンダリングされません。したがって、最初のフレームを超えて位置を設定しても、データはレンダリングされません。

MediaElement.ScrubbingEnabledプロパティが鍵だと思います。

MediaElement が一時停止中にシーク操作のフレームを更新するかどうかを示す値を取得または設定します。これは依存プロパティです。

なしで同じアプローチを試みScrubbingEnabledましたが、最初のフレームがレンダリングされないことがわかりました。これが私がこれに使用しているハードウェアだけであるかどうかはわかりません。覚えておくべきもう 1 つの項目は、MediaElement の動作方法です。一度呼び出すと、Play()実際Pause()には最初のフレームで正確に表示されない可能性があるため、呼び出す前にストリームの音量を下げ、Play()呼び出した後にリセットすることをお勧めしますPause()

于 2009-08-28T20:58:30.757 に答える
9

イベントを作成する必要はありません。次を参照してください。

<MediaElement Source="foo.wmv" 
              MediaOpened="videoElement_MediaOpened" 
              LoadedBehavior="Pause" ScrubbingEnabled="True" />
于 2011-01-06T16:41:50.010 に答える
2

コメントできないので、これが私の答えです。スクラブとは、MediaElement が一時停止されたときにレンダリングされた画像を更新することを指します。

//Todo: Set your source

//if not stated in the xmal, you can still set this here.
Player.LoadedBehavior = MediaState.Manual;

//Turn scrubbing on
Player.ScrubbingEnabled = true;

Player.Pause();

Player.Position = TimeSpan.FromTicks(1);

スクラブのヒントをありがとう!

于 2014-07-29T05:11:19.960 に答える