有一些免费的音频库可用于商业用途(例如NAudio),能够播放mp3(但不包括NAudio!)。非常感谢! :)
您可以使用内置的WMPLib - 参见这篇MSDN文章:以编程方式创建Windows Media Player控件。
在最基本的层面上,您将需要类似以下的代码:
private void PlayFile(String url)
{
Player = new WMPLib.WindowsMediaPlayer();
Player.URL = url;
Player.controls.play();
}
然而,您还可以获得事件来告诉您播放状态已更改,因此您可以开始播放新的曲目或关闭表单(例如):
Player.PlayStateChange +=
new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(Player_PlayStateChange)
private void Player_PlayStateChange(int NewState)
{
if ((WMPLib.WMPPlayState)NewState == WMPLib.WMPPlayState.wmppsStopped)
{
this.Close();
}
}
这意味着您的应用程序与Windows绑定在一起,因此无法使用Mono。
Device dev = new Device();
dev.SetCooperativeLevel(this.Handle, CooperativeLevel.Priority); // this refers to the form to which DirectSound is tied
SecondaryBuffer sound = new SecondaryBuffer("path\\to\\file", dev);
sound.Volume = /* volume */;
sound.Play(0, BufferPlayFlags.Default);