MonoDevelop + NAudio + Ubuntu Linux告诉我Winmm.dll没find?

所以我试图使用NAudio和Ubuntu Linux的MonoDevelop,出于某种原因它的错误说,winmm.dll没有find,所以我试图下载它,并且“添加引用”对话声明它不是一个有效的.NET库。 这是我的代码….

using System; using System.IO; using Gst; using GLib; using Gst.BasePlugins; using NAudio; using NAudio.Wave; namespace record_audio_simple_test { class MainClass { //Define class variables private NAudio.Wave.WaveFileReader waveFile = null; private NAudio.Wave.DirectSoundOut output = null; public static void Main (string[] args) { WaveFileReader waveFile = new WaveFileReader("../../convo47.wav"); } } } 

它说这行上的错误WaveFileReader waveFile = new WaveFileReader(“../../ convo47.wav”);

NAudio的很大一部分包含interop包装,用于访问诸如waveIn / waveOut,DirectSound,WASAPI,ACM,MediaFoundation和DMO等Windows API调用。 这些都不会在Linux上工作,因为这些API方法不存在。 我认为从理论上讲他们可能在Windows API模拟层上工作,但是最好创建一个IWavePlayer的实现来调用Linux声音API。

NAudio的一些部分应该是跨平台的,比如IWaveProviderISampleProvider实现。 WaveFileReader应该可以工作,但是由于它使用了mmioStringToFOURCC Windows API调用,所以mmioStringToFOURCC 。 我将很快删除这个依赖关系,因为它正在阻止WaveFileReader在Windows应用商店应用中使用。