1。
インストール・パッケージをnaudio -v 1.9.0
2。
NAudio.Waveを使用しました。
3。
パブリック クラスNAudioHelper { 公共WaveInEvent mWavIn。 公共WaveFileWriter mWavWriter。 パブリック ブール IsStoppedRecording { 取得します。セット ; } = 偽。 /// <要約> /// 記録を開始 /// </要約> /// <PARAM NAME = "filePathに"> </ PARAM> 公共 ボイド StartRecord(文字列filePathに) { mWavIn = 新しいWaveInEvent()。 mWavIn.DataAvailable+ = MWavIn_DataAvailable。 mWavWriter = 新しいWaveFileWriter(filePathに、mWavIn.WaveFormat)。 mWavIn.StartRecording(); ConsoleKeyInfo CKI = Console.ReadKey(真)。 一方、(cki.Key == ConsoleKey.Escape) { // Environment.Exit(0)。 StopRecord(); IsStoppedRecording = 真; もし(IsStoppedRecording) { Console.ForegroundColor = ConsoleColor.Red。 Console.WriteLineを(" 録画を停止!" ); 休憩; } } } /// <要約> /// ストップ記録 /// </要約> 公共 ボイドStopRecord() { mWavIn?.StopRecording()。 mWavIn?.Dispose()。 mWavIn = nullを。 mWavWriter?。閉じる(); mWavWriter = nullを; } プライベート ボイド MWavIn_DataAvailable(オブジェクト送信者、WaveInEventArgs E) { mWavWriter.Write(e.Buffer、0 、e.BytesRecorded)。 INT secondsRecorded =(INT)mWavWriter.Length / mWavWriter.WaveFormat.AverageBytesPerSecond。 } } 静的 ボイドメイン(文字列[]引数) { NAudioDemo()。 } 静的 ボイドNAudioDemo() { NAudioHelper recordHelper =新しいNAudioHelper(); Console.ForegroundColor = ConsoleColor.Green。 Console.WriteLineを(" 準備完了!" ); Console.WriteLineを(「録音を開始するキーを入力してください!」); ConsoleKeyInfo情報 = Console.ReadKey(真の); BOOL isStarted = 偽; しばらく(info.Key == ConsoleKey.Enter) { 場合(!isStarted) { 文字列 recordedFileName = DateTime.Now.ToString("yyyyMMddHHmmssffff ")+ " .MP3 " ; Console.WriteLineを(" スタート記録... " ); Console.WriteLineを(" を押して、エスケープ(ESC)キーを押して終了します:\ n " ); recordHelper.StartRecord(recordedFileNameを); isStartedを = 真; } } }