天津做做网站,什么是网络运营,制作班徽的小程序,市场调研的基本流程NAudio
NAudio官网
环境
Unity2019.4.34f1c1 Window10 NAudio 1.10 .Net 3.5
录制音频
WaveInEvent类可录制音频
StartRecording方法 启用录制StopRecording方法 停止录制DataAvailable 录制中回调RecordingStopped 录制结束回调
WaveFileWriter类可存储音频
Write方法…NAudio
NAudio官网
环境
Unity2019.4.34f1c1 Window10 NAudio 1.10 .Net 3.5
录制音频
WaveInEvent类可录制音频
StartRecording方法 启用录制StopRecording方法 停止录制DataAvailable 录制中回调RecordingStopped 录制结束回调
WaveFileWriter类可存储音频
Write方法可存储音频
检测麦克风设备数量
WaveIn.DeviceCount 返回音频捕获设备数量
注意
台式电脑可能需要插入耳机才可以启用麦克风
示例
检测到麦克风显示开始录制按钮点击开始录制按钮显示停止录制按钮点击停止录制按钮回到步骤1
using NAudio.Wave;
using System;
using System.IO;
using UnityEngine;public class RecordNAudio : MonoBehaviour
{bool recording;string outputFolder;string outputFilePath{get{return Path.Combine(outputFolder, DateTime.Now.ToString(yyyyMMddHHmmss) .wav);}}WaveInEvent waveIn;WaveFileWriter writer;private void Awake(){recording false;outputFolder Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), NAudio);if (!Directory.Exists(outputFolder))Directory.CreateDirectory(outputFolder);waveIn new WaveInEvent();waveIn.DataAvailable Recording;waveIn.RecordingStopped RecordingStopped;writer null;}private void OnGUI(){if (recording false){if (WaveIn.DeviceCount 0){if (GUILayout.Button(开始录制)){writer new WaveFileWriter(outputFilePath, waveIn.WaveFormat);waveIn.StartRecording();recording true;}}elseGUILayout.Label(无法启用麦克风请在主机上插入耳机,尝试启用麦克风); }else{if (GUILayout.Button(停止录制)){waveIn.StopRecording();recording false;}}}private void Recording(object sender, WaveInEventArgs e){if (writer ! null)writer.Write(e.Buffer, 0, e.BytesRecorded);}private void RecordingStopped(object sender, StoppedEventArgs e){if (writer ! null)writer.Dispose();writer null;waveIn.Dispose();}
}