【Winform】中級:メディアプレイヤーアプリのチュートリアル

このチュートリアルでは、中級者向けにC#とWinFormを使ったメディアプレイヤーアプリを作成します。このアプリを通じて、マルチメディアの操作、ファイルの読み込み、再生リスト管理、イベント処理などの技術を学べます。ユーザーは音楽やビデオファイルを追加し、再生や停止、スキップなどの操作を行えます。これにより、複雑なUI操作とマルチメディアの制御方法を理解できるようになります。

1. プロジェクトのセットアップ

  1. Visual Studio を開き、新しい「Windows フォームアプリケーション (.NET Framework)」プロジェクトを作成します。
  2. プロジェクト名を「MediaPlayerApp」にします。
  3. Form1の名前をMediaPlayerFormに変更し、Textプロパティも「メディアプレイヤー」に設定します。

2. 基本的なUIの配置

  1. ListBox コントロールをフォームに追加し、プロパティを次のように設定します:
    • Name: playlistBox
    • Dock: Left
    • Width: 200
  2. Button コントロールを4つ追加し、それぞれ次のように設定します:
    • Name: addButton, Text: “追加"
    • Name: playButton, Text: “再生"
    • Name: stopButton, Text: “停止"
    • Name: skipButton, Text: “スキップ"
    • それぞれのDock: Bottom
  3. OpenFileDialog コントロールをフォームに追加します(非表示のコンポーネント)。
  4. Windows Media Player コントロールをフォームに追加し、プロパティを次のように設定します:
    • Name: mediaPlayer
    • Dock: Fill

3. メディア再生機能の実装

以下のコードを使って、メディアプレイヤーアプリの基本ロジックを実装します。

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace MediaPlayerApp
{
    public partial class MediaPlayerForm : Form
    {
        private List<string> playlist;
        private int currentIndex = -1;

        public MediaPlayerForm()
        {
            InitializeComponent();
            InitializeMediaPlayerApp();
        }

        private void InitializeMediaPlayerApp()
        {
            playlist = new List<string>();
            addButton.Click += AddButton_Click;
            playButton.Click += PlayButton_Click;
            stopButton.Click += StopButton_Click;
            skipButton.Click += SkipButton_Click;
        }

        private void AddButton_Click(object sender, EventArgs e)
        {
            openFileDialog.Filter = "Media Files|*.mp3;*.wav;*.mp4;*.avi|All Files|*.*";

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                playlist.Add(openFileDialog.FileName);
                playlistBox.Items.Add(System.IO.Path.GetFileName(openFileDialog.FileName));
            }
        }

        private void PlayButton_Click(object sender, EventArgs e)
        {
            if (playlistBox.SelectedIndex != -1)
            {
                currentIndex = playlistBox.SelectedIndex;
                mediaPlayer.URL = playlist[currentIndex];
                mediaPlayer.Ctlcontrols.play();
            }
        }

        private void StopButton_Click(object sender, EventArgs e)
        {
            mediaPlayer.Ctlcontrols.stop();
        }

        private void SkipButton_Click(object sender, EventArgs e)
        {
            if (currentIndex + 1 < playlist.Count)
            {
                currentIndex++;
                mediaPlayer.URL = playlist[currentIndex];
                mediaPlayer.Ctlcontrols.play();
                playlistBox.SelectedIndex = currentIndex;
            }
        }
    }
}

4. メディアの再生、停止、スキップ

  • 「追加」ボタンをクリックすると、ファイル選択ダイアログが表示され、音楽やビデオファイルをプレイリストに追加できます。
  • 「再生」ボタンをクリックすると、選択したファイルが再生されます。
  • 「停止」ボタンをクリックすると、再生が停止します。
  • 「スキップ」ボタンをクリックすると、次のファイルにスキップして再生します。

5. プレイリストの管理とメディアコントロール

プレイリストに複数のファイルを追加し、選択したファイルを再生・管理する機能を実装することで、複数ファイルの取り扱いやメディア操作の基礎を学びます。

sh

まとめ

この中級チュートリアルでは、マルチメディアの操作、ファイル管理、リスト管理、イベント処理といった、より高度なWinForm機能を学びました。このメディアプレイヤーアプリケーションを作成することで、ユーザーインターフェースの強化とマルチメディア制御の基礎を理解できるようになります。