C#播放MPEG音频文件

问题描述:

我正在寻找一种在C#中播放mpeg音频文件的方法。随着MP3的情况很简单:C#播放MPEG音频文件

System.Windows.Media.MediaPlayer player = new System.Windows.Media.MediaPlayer(); 
    player.Open(new System.Uri(File)); 
    player.Play(); 

我正在寻找一种方式类似简单的M4A或WEBM音频文件播放。现在我很绝望,我试图做一个变通方法:

 String path = Path.GetFullPath("./x.m4a"); 
     Process process = new Process(); 
     ProcessStartInfo startInfo = new ProcessStartInfo(); 
     startInfo.WindowStyle = ProcessWindowStyle.Hidden; 
     startInfo.FileName = "ffplay.exe"; 
     startInfo.Arguments = "-vn -showmode 0 " + path; 
     process.StartInfo = startInfo; 
     process.StartInfo.UseShellExecute = false; 
     process.StartInfo.RedirectStandardOutput = true; 
     process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
     process.StartInfo.CreateNoWindow = true; 
     process.Start(); 

对于现在的我能够发挥x.m4a文件,但是当我退出该文件时,它不会停止。另外,我恐怕对赛道流量无法控制。有没有其他方法(例如NuGet包)来播放mpeg文件?

好的,我找到了一种方法。显然,NAudio库可以完成这项工作,但是您需要为MPEG4层安装编解码器。在此之后它很简单:

NAudio.Wave.WaveOut wave = new NAudio.Wave.WaveOut(); 
wave.Init(fileName); 
wave.Play(); 

编辑:讽刺的是,一个月后,我发现我自己的答案同样的问题。对于老版本的n音讯(例如用于.NET 4.0),你需要一点点解决方法:因为系统需要等待,直到玩家完成

 var wave = new WaveOut(); 
     var x = new AudioFileReader(filename); 
     wave.Init(x); 
     wave.Play(); 

     while(true)System.Threading.Thread.Sleep(100); 

末循环简单相加。随意编辑。