WPF使用NAudio录音
代码:
using NAudio.Wave;
using System.Windows; namespace NAudioDemo
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
RecordController record = new RecordController();
bool startRecord = false; public MainWindow()
{
InitializeComponent();
} private void Button_Click(object sender, RoutedEventArgs e)
{
if (!startRecord)
{
record.StartRecord("D:\\rec.wav");
startRecord = true;
}
else
{
record.StopRecord();
startRecord = false;
}
}
} /// <summary>
/// 录音功能控制类
/// </summary>
public class RecordController
{
public WaveIn mWavIn;
public WaveFileWriter mWavWriter; /// <summary>
/// 开始录音
/// </summary>
/// <param name="filePath"></param>
public void StartRecord(string filePath)
{
mWavIn = new WaveIn();
mWavIn.DataAvailable += MWavIn_DataAvailable;
mWavIn.RecordingStopped += MWavIn_RecordingStopped;
mWavWriter = new WaveFileWriter(filePath, mWavIn.WaveFormat);
mWavIn.StartRecording();
} /// <summary>
/// 停止录音
/// </summary>
public void StopRecord()
{
mWavIn?.StopRecording();
mWavIn?.Dispose();
mWavIn = null;
mWavWriter?.Close();
mWavWriter = null;
} private void MWavIn_RecordingStopped(object sender, StoppedEventArgs e)
{
mWavIn?.Dispose();
mWavIn = null;
mWavWriter?.Close();
mWavWriter = null;
} private void MWavIn_DataAvailable(object sender, WaveInEventArgs e)
{
mWavWriter.Write(e.Buffer, , e.BytesRecorded);
int secondsRecorded = (int)mWavWriter.Length / mWavWriter.WaveFormat.AverageBytesPerSecond;
}
}
}
WPF使用NAudio录音的更多相关文章
- C# NAudio录音和播放音频文件及实时绘制音频波形图(从音频流数据获取,而非设备获取)
下午写了一篇关于NAudio的录音.播放和波形图的博客,不太满意,感觉写的太乱,又总结了下 NAudio是个相对成熟.开源的C#音频开发工具,它包含录音.播放录音.格式转换.混音调整等功能.本次介绍主 ...
- C# NAudio录音和播放音频文件-实时绘制音频波形图(从音频流数据获取,而非设备获取)
NAudio的录音和播放录音都有对应的类,我在使用Wav格式进行录音和播放录音时使用的类时WaveIn和WaveOut,这两个类是对功能的回调和一些事件触发. 在WaveIn和WaveOut之外还有对 ...
- NAudio的使用说明
官方网站:http://naudio.codeplex.com/ 源码:https://github.com/naudio/NAudio NuGet安装: Install-Package NAudio ...
- C# 录音和变调
一直想研究下录音 正好有个项目有机会使用一下强大的 NAudio (https://github.com/naudio/NAudio)库 录音 NAudio 录音类库 public class NAu ...
- SignalR+NAudio实现语音会话[WPF]
原文:SignalR+NAudio实现语音会话[WPF] 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lordwish/article/detai ...
- C# 录音和播放录音-NAudio
在使用C#进行录音和播放录音功能上,使用NAudio是个不错的选择. NAudio是个开源,相对功能比较全面的类库,它包含录音.播放录音.格式转换.混音调整等操作,具体可以去Github上看看介绍和源 ...
- C# NAudio 录制声音和显示波形图
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 十余年软件开发经历,经验总结和程序一览(涉及Socket、WPF、vc++、CAD、图像、GIS)
前言 本文主要介绍我开发的几款软件产品,大概介绍一下功能.可以让读者了解本人的开发能力,所擅长的方面.有相关开发需求可以联系作者. 本人开发软件多年,从事的行业也多种多样:自然接触了不同的业务,开发了 ...
- C#开源录音组件、录像组件、录屏组件及demo源码
在多媒体系统中,一般都会涉及到录音.录像.录屏问题,采集得到的数据可以用来传输.播放.或存储.所以,对于像课件录制系统.语音视频录制系统.录屏系统等,多媒体数据的采集就是最基础的功能之一. MCapt ...
随机推荐
- CSDN code使用教程之git使用方法具体解释
首先须要下载GITclient.http://git-scm.com/downloads. . . 然后再code.csdn.net上面创建一个项目,假设 你的项目已经存在.那么请建立项目 ...
- 线程基础:JDK1.5+(9)——线程新特性(中)
(接上文<线程基础:JDK1.5+(8)--线程新特性(上)>) 3.工作在多线程环境下的"计数器": 从这个小节開始,我们将以一个"赛跑"的样例. ...
- 编写ATL控件的简单做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 ATL并不像MFC库那样提供了很多的控件窗口类,因此要使用ATL的话需要自己去封装.封装的做法很简单.比如现在我需要一 ...
- python3 numpy API练习代码
# -*- coding: utf-8 -*- import numpy as np; a=np.array([1,2,3,4,5,6]); print("数组是:",a) #数组 ...
- oracle数据库零散知识01
1,rownum 是一个虚列,使用时必须包括1才能使用,rownum = 1,rownum < 10; rownum = 2是不可以的: 2,if case loop 要加end结束,end ...
- 汉高澳大利亚matrix矩阵计算器
我在梦中的超级计算机超级计算机锯,使用大量阵列的cpu记忆,完成并行计算.一个手机制造商由于使用普通机械提供的服务,往往造成停机.是铁道部列车网络售票的事实. 无法使用云服务.上万台计算机并行处理,因 ...
- ssh远程连接docker中的 linux container
ssh远程连接docker中的container 由于工作需要,要远程连接Container,本地机器是windows,以下为解决步骤: 1. 环境 本地:Windows ↓ Docker版本1. ...
- 微软 2018 年第一笔收购:文件存储公司 Avere Systems
微软 2018 年第一笔收购:文件存储公司 Avere Systems 2018 年 1 月 4 日, 9:47 上午 · Picturepan2 微软今天宣布收购文件存储公司 Avere Syste ...
- Struts2——(2)配置文件、通配符
一.Struts配置文件 (1)struts-default.xml(框架自带) 定义了一些框架自带的Result组件,拦截器组件. <package name="struts-def ...
- WinForm - 窗体淡入效果界面的简单实现方法
WinForm窗体淡入效果主要使用到控件的Opacity属性 首先在WinForm窗体中拖入一个Timer控件,然后再Timer控件的Tick事件添加如下代码: private void timer1 ...