哇塞,查了好久,网上的各种烦,像我这种没耐心写着玩玩的菜比根本懒得看,关键词查了响度,频率啊,不过我这种垃圾都是百度的。。。
终于找到了个简单的,来自哪里我也找不到了
NAUDIO官网有下
好吧,我承认我就是想自己写个八分音符酱,可是声音真的好难啊
代码:
using System; using NAudio.Wave; using System.Windows; namespace WpfApplication1 { /// /// MainWindow.xaml 的交互逻辑 /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private IWaveIn waveIn; //private WaveFileWriter writer; /// /// 开始录音 /// private void StartRecording() { if (waveIn != null) return; waveIn = new WaveIn { WaveFormat = new WaveFormat(8000, 1) };//设置码率,比如我这8000 waveIn.DataAvailable += waveIn_DataAvailable; //waveIn.RecordingStopped += OnRecordingStopped; waveIn.StartRecording(); }/// /// 停止录音 /// private void StopRecording() { waveIn.StopRecording(); waveIn.Dispose(); } /// /// 录音中,其实主要就是这个啦,我太菜了,就举这个例子吧,懒得弄得更好了,就这样吧 /// /// /// private void waveIn_DataAvailable(object sender, WaveInEventArgs e) { //Debug.WriteLine(e.BytesRecorded); short s = BitConverter.ToInt16(e.Buffer, 0);//这样采样比较少,反正是int16型的 button.Width = Math.Abs(s / 50); } //你猜是啥 private void button_Click(object sender, RoutedEventArgs e) { StartRecording(); } private void button1_Click(object sender, RoutedEventArgs e) { StopRecording(); } } }
我太垃圾了,十分欢迎大家来喷我