私はNAudioの新機能で、マイクからのオーディオを録音してWaveファイルに書き込む小さなプログラムを作成しようとしています。私のプログラムのMain関数でrecordStuff()関数を呼び出すと、プログラムはWaveInオブジェクト上の構造体を越えず、プログラムは "WaveInEventを使用してバックグラウンドスレッドに記録する"というメッセージを持つInvalidOperationExceptionで終了します。 NAudioの知識を持っている人なら、これがどういう意味か教えてくれますか?私はそれ自身のスレッドでrecordStuff()関数を呼び出すことを試みたが、私は同じ結果で終わる。NAudio WaveInを構築するときにInvalidOperationExceptionが発生する
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NAudio.Wave;
namespace SimpleWave
{
class Recorder
{
public Recorder()
{
writer = new WaveFileWriter("C:\\Users\\Paul\\Desktop\\yeah.wav", new NAudio.Wave.WaveFormat(44100, 1));
}
public static List<byte> buff = new List<byte>();
public static WaveFileWriter writer;
public void recordStuff()
{
// WaveIn Streams for recording
WaveIn waveInStream;
waveInStream = new WaveIn();
waveInStream.DeviceNumber = 0;
waveInStream.WaveFormat = new WaveFormat(44100, 2);
writer = new WaveFileWriter(@"C:\Users\Paul\Desktop\this.wav", waveInStream.WaveFormat);
waveInStream.DataAvailable += new EventHandler<WaveInEventArgs>(waveInStream_DataAvailable);
waveInStream.StartRecording();
}
public void waveInStream_DataAvailable(object sender, WaveInEventArgs e)
{
writer.Write(e.Buffer, 0, e.BytesRecorded);
}
}
}
Windowsメッセージとは何ですか? –