WinForm
アプリケーションを開発しています。ユーザーがボタンをクリックしたときにMP3ファイルを再生したい。
MP3ファイルは、アプリケーションが実行されるコンピューターのファイルシステムにあります。
しばらくGoogleで検索して、System.Media.SoundPlayer
クラスに関する情報を見つけました。しかし、SoundPlayer
クラスは.wav形式のファイルを再生するためにのみ使用できることを読みました。
.mp3形式のファイルを再生するために使用できるクラスは何ですか?
どんな助けも大歓迎です。
以下のリンクは、c#を使用してWindowsフォームからmp3ファイルを再生することに関する非常に優れたチュートリアルです。
http://www.daniweb.com/software-development/csharp/threads/292695/playing-mp3-in-c
このリンクをクリックすると、Windowsフォームを使用してmp3曲を再生する方法に関する多くの情報が含まれるトピックに移動します。また、同じことを達成しようとする他の多くのプロジェクトも含まれています。
たとえば、次のコードを.mp3に使用します。
WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
wplayer.URL = "My MP3 file.mp3";
wplayer.Controls.Play();
次に、wplayer.Controls.Play()のみを配置します。 Button_Clickイベントで。
たとえば、次のコードを.wavに使用します。
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = "Sound.wav";
player.Play();
Player.Play();を置きます。 Button_Clickイベントで、それは動作します。
1)最も簡単な方法は WMPLib を使用することです
WMPLib.WindowsMediaPlayer Player;
private void PlayFile(String url)
{
Player = new WMPLib.WindowsMediaPlayer();
Player.PlayStateChange += Player_PlayStateChange;
Player.URL = url;
Player.controls.play();
}
private void Player_PlayStateChange(int NewState)
{
if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped)
{
//Actions on stop
}
}
2)あるいは、オープンソースライブラリ NAudio を使用できます。さまざまな方法でmp3ファイルを再生でき、実際にはファイルを再生するだけではありません。
これは次のように簡単です
using NAudio;
using NAudio.Wave;
IWavePlayer waveOutDevice = new WaveOut();
AudioFileReader audioFileReader = new AudioFileReader("Hadouken! - Ugly.mp3");
waveOutDevice.Init(audioFileReader);
waveOutDevice.Play();
停止後に処分することを忘れないでください
waveOutDevice.Stop();
audioFileReader.Dispose();
waveOutDevice.Dispose();
ウィンドウメディアプレーヤーのCOMオブジェクトの下にライブラリを追加し、必要な場所にコードを入力します
ソース:
WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
wplayer.URL = @"C:\Users\Adil M\Documents\Visual Studio 2012\adil.mp3";
wplayer.controls.play();
mciSendString APIを使用して、このようなmp3またはwavファイルを再生できます。
[DllImport("winmm.dll")]
public static extern uint mciSendString(
string lpstrCommand, lpstrReturnString, uint uReturnLength, uint hWndCallback);
mciSendString(@"close temp_alias", null, 0, 0);
mciSendString(@"open ""music.mp3"" alias temp_alias", null, 0, 0);
mciSendString("play temp_alias repeat", null, 0, 0);