我正在開發一個WinForm
應用程序。我想在用戶點擊按鈕時播放MP3文件。在WinForm應用程序中播放MP3文件
MP3文件位於執行應用程序的計算機的文件系統中。
我已經谷歌搜索了一段時間,我發現有關System.Media.SoundPlayer
類的信息。但我讀過SoundPlayer
類只能用於播放.wav格式的文件。
什麼類可以用來播放.mp3格式的文件?
任何幫助將不勝感激。
我正在開發一個WinForm
應用程序。我想在用戶點擊按鈕時播放MP3文件。在WinForm應用程序中播放MP3文件
MP3文件位於執行應用程序的計算機的文件系統中。
我已經谷歌搜索了一段時間,我發現有關System.Media.SoundPlayer
類的信息。但我讀過SoundPlayer
類只能用於播放.wav格式的文件。
什麼類可以用來播放.mp3格式的文件?
任何幫助將不勝感激。
下面的鏈接,給出了一個很好的教程後,部署,有關從窗口形式播放MP3文件用C#:
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();
該庫可以在windows/system32中找到,格式爲wmp.dll – 2016-08-26 23:41:13
可以使用mciSendString API來播放MP3或類似這樣的
[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);
此方法也支持.mid,.wav和.wma格式 – 2017-06-20 16:05:59
不知道註釋只能在5分鐘內編輯。無論如何,這個鏈接值得一提:https://stackoverflow.com/questions/3905732/how-do-i-repeat-a-midi-file-in-c – 2017-06-20 16:17:25
重構一個wav文件:
new WindowsMediaPlayer() { URL = "MyMusic.mp3" }.controls.play();
你需要一些額外的信息,或者你已經實現你的需求? – Max 2013-02-22 14:17:35