6

だから私はNAudioとUbuntuLinuxでMonoDevelopを使おうとしています。何らかの理由でwinmm.dllが見つからないというエラーが表示されたので、ダウンロードしようとしました。[参照の追加]ダイアログで有効な.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");
        }
    }
}

この行のエラーは WaveFileReaderwaveFile= new WaveFileReader( "../../ convo47.wav");と表示されます。

4

1 に答える 1

10

NAudioの大部分は、waveIn / waveOut、DirectSound、WASAPI、ACM、MediaFoundation、DMOなどのWindowsAPI呼び出しにアクセスするための相互運用ラッパーで構成されています。これらのAPIメソッドは存在しないため、これらはいずれもLinuxでは機能しません。理論的には、Windows APIエミュレーションレイヤーの上で動作することは可能かもしれないと思いますが、実際には、IWavePlayerその呼び出しの実装をLinuxサウンドAPIに作成する方がよいでしょう。

IWaveProviderと実装のほとんどなど、クロスプラットフォームで動作するはずのNAudioの一部がありISampleProviderます。おそらく動作するはずですが、 Windows API呼び出しWaveFileReaderを利用しているため、失敗しています。この依存関係は、現在Windows Storeアプリでも使用できなくなっているため、mmioStringToFOURCC間もなく削除します。WaveFileReader

于 2012-12-10T07:29:04.770 に答える