2013-02-22 8 views
30

Ich entwickle eine WinForm Anwendung. Ich möchte eine MP3-Datei wiedergeben, wenn der Benutzer auf eine Schaltfläche klickt.Wiedergabe einer MP3-Datei in einer WinForm-Anwendung

Die MP3-Datei befindet sich im Dateisystem des Computers, auf dem die Anwendung ausgeführt wird.
Ich habe für eine Weile gegoogelt und ich habe Informationen über die System.Media.SoundPlayer Klasse gefunden. Aber ich habe gelesen, dass die Klasse SoundPlayer nur verwendet werden kann, um Dateien im .wav-Format abzuspielen.

Welche Klassen können zum Abspielen von Dateien im .mp3-Format verwendet werden?

Jede Hilfe wird sehr geschätzt.

+1

Haben Sie zusätzliche Informationen benötigen, oder haben Sie bereits Ihre Bedürfnisse erreichen? – Max

Antwort

33

Der Link unten Vergessen Sie nicht, ein sehr gutes Tutorial gibt zu verfügen, um MP3-Dateien von einer Windows-Form spielen mit C#:

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

Dieser Link führt Sie zu einem führen Thema, das eine Menge Informationen darüber enthält, wie man einen MP3-Song mit Windows-Formularen spielt. Es enthält auch eine Menge anderer Projekte, versucht, die gleiche Sache zu erreichen: der Code für .mp3

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

Zum Beispiel verwenden:

WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer(); 

wplayer.URL = "My MP3 file.mp3"; 
wplayer.Controls.Play(); 

Dann nur die wplayer.Controls.Play setzen(); im Ereignis Button_Click.

Zum Beispiel diesen Code für .wav verwenden:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(); 

player.SoundLocation = "Sound.wav"; 
player.Play(); 

die player.Play Put(); im Ereignis Button_Click, und es wird funktionieren.

+1

Obwohl es wahrscheinlich ist, können Sie nicht zu 100% sicher sein, dass Windows Media Player auf dem Zielsystem installiert ist. – Odys

+0

Ich stimme zu, beziehen Sie sich auf die folgende Frage für eine Überprüfung: http://StackOverflow.com/Questions/3718152/How-to-check-what-version-of-windows-media-player-is-installed-on-the- Maschine, da ich denke, dass es für diese Frage offtopic ist. – Max

20

1) Die einfachste Art und Weise WMPLib verwenden würde

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) Alternativ können Sie die Open-Source-Bibliothek NAudio verwenden. Es kann MP3-Dateien mit verschiedenen Methoden abspielen und bietet viel mehr als nur das Abspielen einer Datei.

Dies ist so einfach wie

using NAudio; 
using NAudio.Wave; 

IWavePlayer waveOutDevice = new WaveOut(); 
AudioFileReader audioFileReader = new AudioFileReader("Hadouken! - Ugly.mp3"); 

waveOutDevice.Init(audioFileReader); 
waveOutDevice.Play(); 

nach dem Stopp

waveOutDevice.Stop(); 
audioFileReader.Dispose(); 
waveOutDevice.Dispose(); 
6
  1. zuerst auf die Eigenschaften Ihres Projekts gehen
  2. klicken Sie auf Hinzufügen Referenzen
  3. fügen Sie die Bibliothek unter COM-Objekt für Windows Media Player dann Ihren Code ein, in dem Sie


    Quelle wollen:

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

Die Bibliothek kann in Windows/system32 als wmp.dll –

1

können Sie die mciSendString API verwenden, um einen mp3 oder eine WAV-Datei wie dieses

[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); 
+0

gefunden werden. Dieser Ansatz unterstützt auch .mid, .wav und .wma Formate –

+0

Nicht bewusst Kommentare können nur innerhalb von 5 Minuten bearbeitet werden. Jedenfalls ist dieser Link erwähnenswert: https://stackoverflow.com/questions/3905732/how-do-i-repeat-a-midi-file-in-c –

-2

Refactoring zu spielen:

new WindowsMediaPlayer() { URL = "MyMusic.mp3" }.controls.play(); 
Verwandte Themen