C#播放MPEG音频文件
C# Play MPEG audio files
我正在寻找一种在 C# 中播放 mpeg 音频文件的方法。对于 mp3,情况很简单:
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();
编辑: 具有讽刺意味的是,一个月后我找到了同样问题的答案。对于旧版本的 NAudio(例如 .NET 4.0),您需要一些解决方法:
var wave = new WaveOut();
var x = new AudioFileReader(filename);
wave.Init(x);
wave.Play();
while(true)System.Threading.Thread.Sleep(100);
添加最后一个循环只是因为系统需要等待玩家完成。请随意编辑它。
我正在寻找一种在 C# 中播放 mpeg 音频文件的方法。对于 mp3,情况很简单:
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();
编辑: 具有讽刺意味的是,一个月后我找到了同样问题的答案。对于旧版本的 NAudio(例如 .NET 4.0),您需要一些解决方法:
var wave = new WaveOut();
var x = new AudioFileReader(filename);
wave.Init(x);
wave.Play();
while(true)System.Threading.Thread.Sleep(100);
添加最后一个循环只是因为系统需要等待玩家完成。请随意编辑它。