C# の Windows フォームアプリケーションで MP3 ファイルを再生する
-
C#で Windows フォームアプリケーションを使用して単純な Mp3 プレーヤーを作成する -
C#でDirectShow機能を使用して Mp3 Windows フォームアプリケーションを作成する
この記事では、C#Windows フォームアプリケーションと Windows Media Player を使用して単純な C#mp3 プレーヤーを構築する方法を示します。
C# で Windows フォームアプリケーションを使用して単純な Mp3 プレーヤーを作成する
まず、次の手順に従って新しい Windows フォームを作成します。
-
Microsoft Visual Studio 2017 または更新されたバージョンを開きます。
-
左上隅にある
ファイルを見つけて、新しいプロジェクトを開きます。 -
次に、
Windows フォームアプリケーションを選択して名前を付け、OKをクリックします。 -
OKをクリックすると、新しい空のウィンドウフォームが表示されます。
次に、フォームをデザインします。
Windows フォームを作成したら、デザインします。ツールボックスに WindowsMediaPlayer アイテムがない場合は、次の手順に従います。
-
コンポーネントを右クリックし、ツールボックス領域のアイテムの選択をクリックすると、新しいウィンドウが表示されます。 -
COM コンポーネントタブを選択し、リストからWindows Media Player項目をクリックします。
アイテムの追加:
-
Windows Media Playerをフォームにドラッグアンドドロップして、その位置を調整します。 -
ListBoxを追加し、Audiolistという名前を付けて mp3 ファイルリストを選択します。 -
ツールボックスからボタンを追加し、
ChooseButtonという名前を付けます。ボタンを使用してプレイリストを選択しています。リストボックスからオーディオファイルを選択すると、Windows Media Playerで再生されるオーディオファイルのプレイリストがリストボックスに表示されます。
これらの特定の手順に従って、MP3 プレーヤーの Windows フォームを作成できます。
必要なライブラリ:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
まず、file と filepath という名前の 2つの文字列配列型グローバル変数を初期化します。
string[] file, filepath;
次に、fileOpen という名前の OpenFileDialog 型変数を作成します。これは、ストレージからファイルを選択するためのダイアログボックスを起動するために使用されます。
OpenFileDialog fileOpen = new OpenFileDialog();
次に、条件を適用し、以下をパラメーターとして渡します。
if (fileOpen.ShowDialog() == System.Windows.Forms.DialogResult.OK)
この式が true の場合、ファイルの名前は file 変数に保存されます。
file = fileOpen.SafeFileNames;
以下のコマンドを使用して、ファイルのパス全体を filepath という名前のパス変数に保存します。
filepath = fileOpen.FileNames;
次に、for ループを使用して、ListBox にオーディオファイルを追加します。
for (int i = 0; i < file.Length; i++) {
Audiolist.Items.Add(file[i]);
}
その後、ダブルクリックして ListBox のクリックイベントを生成します。
private void Audiolist_SelectedIndexChanged(object sender, EventArgs e) {}
次に、このコードは Audiolist 本文に貼り付けられます。このコードは、リストボックスで指定した名前に関係なく、リストまたはそのファイルへのパスを WindowsMediaPlayer に転送します。
private void Audiolist_SelectedIndexChanged(object sender, EventArgs e) {
axWindowsMediaPlayer1.URL = filepath[Audiolist.SelectedIndex];
}
C#Windows フォームアプリケーションと Windows Media Player を使用して単純な C#mp3 プレーヤーを構築するためのソースコードを以下に示します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Mp3Player {
public partial class Form1 : Form {
string[] file, filepath;
public Form1() {
InitializeComponent();
}
private void ChooseButton_Click(object sender, EventArgs e) {
OpenFileDialog fileOpen = new OpenFileDialog();
if (fileOpen.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
file = fileOpen.SafeFileNames;
filepath = fileOpen.FileNames;
for (int i = 0; i < file.Length; i++) {
Audiolist.Items.Add(file[i]);
}
}
}
private void Audiolist_SelectedIndexChanged(object sender, EventArgs e) {
axWindowsMediaPlayer1.URL = filepath[Audiolist.SelectedIndex];
}
}
}
C# で DirectShow 機能を使用して Mp3 Windows フォームアプリケーションを作成する
DirectShow 機能を使用して、WindowsMediaPlayer で Mp3Windows フォームアプリケーションを作成します。
Tlbimp は、COM タイプライブラリのタイプ定義を、共通言語の実行可能アセンブリの同等の定義に変換します。
Tlbimp.exe の出力は、元のタイプライブラリで宣言されたタイプのランタイムメタデータを含むバイナリファイル(アセンブリ)です。
QuartzTypeLib.dll を作成するには、次の手順に従います。
-
最初に
tlbimpツールを実行します。 -
TlbImp.exe %windir%\system32\quartz.dllを実行します(この場所またはディレクトリはデバイスごとに異なる場合があります)。 -
出力は
QuartzTypeLib.dllになります。 -
ソリューションエクスプローラーでプロジェクト名を右クリックし、[追加]メニュー項目を選択してから[参照]を選択します。QuartzTypeLib.dllを COM 参照としてプロジェクトに追加します。 -
プロジェクトで
参照を展開し、QuartzTypeLib参照を探します。埋め込み相互運用タイプを右クリックしてプロパティを選択し、false に変更します。 -
プロジェクト設定で
32 ビットを優先設定を無効にします。例外を取得したくない場合は、[ビルド]タブ。
このソースコードを使用して、Mp3Windows フォームアプリケーションを作成できます。
using QuartzTypeLib;
public sealed class DirectShowPlayer {
private FilgraphManager fgm;
public void Play(string filepath) {
FilgraphManager fgm = new FilgraphManager();
fgm.RenderFile(filepath);
fgm.Run();
}
public void Stop() {
fgm?.Stop();
}
}
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn