在WinForm应用程序中播放MP3文件

use*_*666 45 .net c# mp3 winforms

我正在开发一个WinForm应用程序.我想在用户点击按钮时播放MP3文件.

MP3文件位于执行应用程序的计算机的文件系统中.
我用谷歌搜索了一段时间,我找到了有关System.Media.SoundPlayer课程的信息.但我已经读过SoundPlayer该类只能用于播放.wav格式的文件.

可以使用哪些类来播放.mp3格式的文件?

任何帮助将不胜感激.

Max*_*Max 39

下面的链接提供了一个非常好的教程,关于使用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();
Run Code Online (Sandbox Code Playgroud)

然后只放wplayer.Controls.Play(); 在Button_Click事件中.

例如,将此代码用于.wav:

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

player.SoundLocation = "Sound.wav";
player.Play();
Run Code Online (Sandbox Code Playgroud)

把player.Play(); 在Button_Click事件中,它将工作.

  • 虽然可能,但您无法100%确定目标系统上安装了Windows Media Player. (3认同)

Vla*_*adL 28

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
    }
}
Run Code Online (Sandbox Code Playgroud)

2)或者你可以使用开源库NAudio.它可以使用不同的方法播放mp3文件,实际上提供的不仅仅是播放文件.

这很简单

using NAudio;
using NAudio.Wave;

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

waveOutDevice.Init(audioFileReader);
waveOutDevice.Play();
Run Code Online (Sandbox Code Playgroud)

停止后别忘了丢弃

waveOutDevice.Stop();
audioFileReader.Dispose();
waveOutDevice.Dispose();
Run Code Online (Sandbox Code Playgroud)

  • 投票支持 NAudio 的建议。不错的图书馆,完全符合我的需要。我无法让 ClickOnce 在我的清单中包含 WMP 程序集。 (2认同)

Adi*_*iii 8

  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();
    
    Run Code Online (Sandbox Code Playgroud)