locked
再生と一時停止を設定するには RRS feed

  • 質問

  • Silverlight2を使った動画配信をしたくて、Blend2でプロジェクトを作成しています。

    このmsdnリンク先にも掲載されているチュートリアルのとおりに作れば、動画の再生・一時停止・停止の各ボタンを配置するところまではできるのですが、YouTubeのように、動画が再生していない状態でクリックすれば再生に、再生している状態でクリックすれば一時停止になるボタンを配置したいのです。
    そういった場合の書き方はどのようなパターンがあるのか分かりません。

    メディアの状態によって条件分岐し、イベントを発生させるのでしょうか?
    よろしくお願いいたします。
    • 移動 Wang Huang 2012年10月1日 9:45 (移動元:Silverlight - ビデオとメディア)
    2009年4月12日 15:40

回答

  • いちかわ様

    > メディアの状態によって条件分岐

    というコードを書けばできます。たとえば、<MediaElement x:Name="video" Source="sample.wmv" /> という要素があるときは、ひとつのボタン(btn)に次のようなイベントハンドラを割り当てることで、一時停止と再生を繰り返すことができます。

            private void btn_Click(object sender, RoutedEventArgs e)
            {
                if (video.CurrentState == MediaElementState.Playing)
                {
                    btn.Content = "Play";
                    video.Pause();
                }
                else
                {
                    btn.Content = "Pause";
                    video.Play();
                }
            }

    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
    マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部 IT技術者アドバンス テクノロジー本部 デベロッパーエバンジェリズムグループ
    2009年4月17日 8:40

すべての返信

  • いちかわ様

    > メディアの状態によって条件分岐

    というコードを書けばできます。たとえば、<MediaElement x:Name="video" Source="sample.wmv" /> という要素があるときは、ひとつのボタン(btn)に次のようなイベントハンドラを割り当てることで、一時停止と再生を繰り返すことができます。

            private void btn_Click(object sender, RoutedEventArgs e)
            {
                if (video.CurrentState == MediaElementState.Playing)
                {
                    btn.Content = "Play";
                    video.Pause();
                }
                else
                {
                    btn.Content = "Pause";
                    video.Play();
                }
            }

    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。
    マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部 IT技術者アドバンス テクノロジー本部 デベロッパーエバンジェリズムグループ
    2009年4月17日 8:40
  • 大野さん

    ありがとうございます。
    質問の後、MouseLeftButtonDownイベントで二つのグリッドのVisibilityをやりとりすることで何とか求める動作にはしていました。
    ただ、上記の方がスマートで簡単ですね。
    早速試してみようと思います。
    2009年4月24日 4:14
  • こんにちは、フォーラムオペレーター大久保です。

    いちかわ さん、フォーラムのご利用ありがとうございます。
    弊社 大野 の投稿ですが、参考になったようですので、勝手ながら「回答としてマーク」させていただきました。

    また何かございましたら是非 MSDN フォーラムをご利用ください。
    おまちしております。
    マイクロソフト株式会社 フォーラム オペレーター 大久保 直美
    2009年5月28日 2:01