[C#] ビデオを再生してみるぜ!(WinForm/WPF両方)

hachikun@昼休みです。
これ、WinFormとWPFでずいぶんと挙動が違うんですねえ。むむむ。

[WinForm]

  • COMで「Windows Media Player」の参照を追加する。
  • ツールボックスにWindows Media Playerが出ないなら、ツールボックス上で右クリックして「アイテムの選択」からいってみよう。
  • それ以外の要素は以下の通り。
using System.Media;

namespace dogaold1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            axWindowsMediaPlayer1.uiMode = "none";
            axWindowsMediaPlayer1.stretchToFit = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //ファイルオープン
            if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string fileName = this.openFileDialog1.FileName;
                axWindowsMediaPlayer1.uiMode = "none";
                //渡されたファイルURLを読み込み
                axWindowsMediaPlayer1.URL = fileName;
            }
        }
    }
}

こんな感じですな。

スクリーンショット 2015-03-24 13.04.25

[WPF]

WPFでは注意点なんてない……と言いたいところだけど、ダイヤログ関係が全然違うのね。
Microsoft.Win32のそれを使ってみた。用法も全然違うし、フィルタ設定も自分で書くはめに……おお。

using Microsoft.Win32;

namespace doga1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            MediaElement me1 = new MediaElement();
            me1.LoadedBehavior = MediaState.Play; // ロードしたら自動再生
            me1.Stretch = Stretch.UniformToFill;  // サイズ変更に追従するか?
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.FilterIndex = 0;
            openFileDialog.Filter = "Video Files(*.mp4;*.avi)|*.mp4;*.avi|All Files (*.*)|*.*";
            bool? result = openFileDialog.ShowDialog();
            if (result == true)
            {
                me1.Source = new Uri(openFileDialog.FileName, UriKind.RelativeOrAbsolute);
            }
        }
    }
}

実行してみると……?

スクリーンショット 2015-03-24 13.22.59

「[C#] ビデオを再生してみるぜ!(WinForm/WPF両方)」への1件のフィードバック

  1. ツールボックスにコントロールが出てこなくて途方にくれておりました。
    ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)