web-dev-qa-db-ja.com

WinFormアプリケーションでMP3ファイルを再生する

WinFormアプリケーションを開発しています。ユーザーがボタンをクリックしたときにMP3ファイルを再生したい。

MP3ファイルは、アプリケーションが実行されるコンピューターのファイルシステムにあります。
しばらくGoogleで検索して、System.Media.SoundPlayerクラスに関する情報を見つけました。しかし、SoundPlayerクラスは.wav形式のファイルを再生するためにのみ使用できることを読みました。

.mp3形式のファイルを再生するために使用できるクラスは何ですか?

どんな助けも大歓迎です。

43
user1139666

以下のリンクは、c#を使用してWindowsフォームからmp3ファイルを再生することに関する非常に優れたチュートリアルです。

http://www.daniweb.com/software-development/csharp/threads/292695/playing-mp3-in-c

このリンクをクリックすると、Windowsフォームを使用してmp3曲を再生する方法に関する多くの情報が含まれるトピックに移動します。また、同じことを達成しようとする他の多くのプロジェクトも含まれています。

http://social.msdn.Microsoft.com/forums/en-US/csharpgeneral/thread/3dbfb9a3-4e14-41d1-afbb-1790420706fe

たとえば、次のコードを.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イベントで、それは動作します。

39
Max

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();
27
VladL
  1. 最初にプロジェクトのプロパティに移動します
  2. [参照の追加]をクリックします
  3. ウィンドウメディアプレーヤーのCOMオブジェクトの下にライブラリを追加し、必要な場所にコードを入力します


    ソース:

        WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
    
        wplayer.URL = @"C:\Users\Adil M\Documents\Visual Studio 2012\adil.mp3";
        wplayer.controls.play();
    
7
Adiii

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); 
1
krisliu