2017-10-14 8 views
1

C#でmpegオーディオファイルを再生する方法を探しています。 mp3の場合は単純です:私は似たシンプルM4AまたはWEBMオーディオファイルを再生する方法を探していますC#MPEGオーディオファイルを再生

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

。今、私は絶望的だと私は回避策を作るしようとしているために:

 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ファイルを再生することが、私は、ファイルを終了すると、それは停止しません。また、私はトラックの流れをあまり支配しないだろうと思う。 mpegファイルを再生するための方法がありますか(NuGetパッケージなど)?

答えて

0

私は方法を見つけました。どうやらNAudioライブラリはその仕事をしていますが、MPEG4層用のコーデックをインストールする必要があります。この後、それは非常に簡単です:

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

EDIT:は皮肉なことに、一ヶ月後、私は同じ問題に私自身の答えを見つけました。 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); 

最終ループが単純に加算されます。自由に編集してください。

関連する問題