2012-03-10 3 views
2

Je cherche un moyen de lire un fichier MP3 sans aucun tiers (Media Player, etc.) Est-il possible de le faire? Merci.Lecture d'un fichier MP3 en utilisant C#

+0

double possible de [Jouer avec des sons dans Winforms en C#] (http://stackoverflow.com/questions/1304223/playing- sounds-in-winforms-using-c-sharp) – Alejandro

Répondre

8

J'ai écrit une bibliothèque open source appelée NAudio qui peut le faire:

private IWavePlayer waveOut; 
private Mp3FileReader mp3FileReader; 

private void PlayMp3() 
{ 
    this.waveOut = new WaveOut(); // or new WaveOutEvent() if you are not using WinForms/WPF 
    this.mp3FileReader = new Mp3FileReader("myfile.mp3"); 
    this.waveOut.Init(mp3FileReader); 
    this.waveOut.Play(); 
    this.waveOut.PlaybackStopped += OnPlaybackStopped; 
} 

private void OnPlaybackStopped(object sender, EventArgs e) 
{ 
    this.waveOut.Dispose(); 
    this.mp3FileReader.Dispose(); 
} 
+0

Merci, je pense que c'est ce que je cherchais, l'événement OnPlaybackStopped est déclenché quand la chanson touche à sa fin? – idish

+0

@idish, NAudio est bien documenté, et pour vos questions, jouez simplement avec et vous verrez les réponses. –

+0

Très bien, merci. – idish

0

Je ne comprends pas pourquoi vous voulez éviter les bibliothèques tierces. Si vous codez en C#, vous développez probablement pour windows, qui a normalement winmm.dll. Vous pouvez donc importer et utiliser mciSendStringlike in this example. Toutefois, si vous convertissez les données MP3 en données brutes, vous pouvez les lire à l'aide de la classe .NET SoundPlayer.

Questions connexes