在项目中,我们会需要录制麦克风的声音。比如录制QQ聊天时自己说的话。那么如何采集呢?当然是采用SharpCapture!下面开始演示关键代码,您也可以在文末下载全部源码:

设置授权

第一步:在引用了SharpCapture.dll之后,调用SharpCapture方法之前,一定要先通过下面代码来设置授权信息,如果是试用版,直接输入Test即可。

KeyMgr.SetKey("Test");

获取IMicrophoneCapture的示例

从之前的一篇博文中,我们介绍了一张图看懂SharpCapture,从那篇文章我们可以看出,SharpCapture通过IMicrophoneCapture采集声卡的声音数据。那么如何获取该接口的示例,从而使用该接口提供的各个方法呢?请看下面的代码:

//麦克风采集,默认采集第一个麦克风
microphone = CaptureFactory.GetMicrophoneCapture(0);

绑定事件

获取到了IMicrophoneCapture的示例后,为其绑定事件AudioDataCaptured。每当引擎采集到声音数据,就会将数据上交给该事件的响应函数上,您就可以进行下一步的处理,比如保存为音频文件。

//注册采集到声音数据的事件,每当采集到声音数据,就通过该事件上报
microphone.AudioDataCaptured += new SGDelegate<byte[]>(MicrophoneAudioDataCaptured);

处理数据

可以在获取到声音字节流后进行后续处理。

/// <summary>
/// 采集到声音数据
/// </summary>
/// <param name="audioData">声音数据</param>
public void MicrophoneAudioDataCaptured(byte[] audioData)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new SGDelegate<byte[]>(MicrophoneAudioDataCaptured), audioData);
}
else
{
//写入wav文件中
if (microphoneWav != null)
{
microphoneWav.WriteAudioData(audioData);
}
}
}

开始采集

处理完上述步骤后,就可以开始采集了。如下:

microphone.Start();

停止采集

您可以通过下面的代码停止采集:

microphone.Stop();

demo源码下载
点击下载源码

C#采集麦克风话筒声音的更多相关文章

  1. C#混音同时录制采集声卡和麦克风话筒

    在项目中,我们可能需要同时录制声卡的声音和麦克风的声音,比如直播间,在线教学.那么如何实现呢?当然是采用SharpCapture!下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步: ...

  2. JavaCV FFmpeg采集麦克风PCM音频数据

    前阵子用一个JavaCV的FFmpeg库实现了YUV视频数据地采集,同样的采集PCM音频数据也可以采用JavaCV的FFmpeg库. 传送门:JavaCV FFmpeg采集摄像头YUV数据 首先引入 ...

  3. speex 回声消除的用法

    speex 回声消除的用法 分类: speex AEC 回声消除 2012-11-13 11:24 1336人阅读 评论(0) 收藏 举报 speex的回声消息 就是speex_echo_cancel ...

  4. mas录屏,带系统声音和麦克风声音

    自带的QuickTime + Soundflower 可完美解决,同时录系统的声音和mic声音,也可以只录系统声音. 安装Soundflower 在应用程序 -> 实用工具,里面找到“音频 MI ...

  5. 如何用FFmpeg API采集摄像头视频和麦克风音频,并实现录制文件的功能

    之前一直用Directshow技术采集摄像头数据,但是觉得涉及的细节比较多,要开发者比较了解Directshow的框架知识,学习起来有一点点难度.最近发现很多人问怎么用FFmpeg采集摄像头图像,事实 ...

  6. 关于右移和除法的关系 , ADC采集电量 ,ADC采集MIC(麦克风)

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  7. 【VS开发】【智能语音处理】Windows下麦克风语音采集

    简介 这是我很早以前的大学毕业设计,忽然间找到贴出来以纪念自己的纯真年代...但是因为CSDN不给面子所以导致短短的一篇文章贴了足足7次..他老提时说文章超过了64K,老大,拜托,那是算上了里面的图片 ...

  8. C#专业的音视频采集录制类库SharpCapture介绍

    SharpCapture是高性能.轻量级.接口清晰.使用简单的C#语言编写的.NET音视频采集.屏幕录制类库.本类库可以采集系统声卡.麦克风.摄像头.屏幕画面,支持声卡和话筒混音采集. 可以应用到直播 ...

  9. Windows上的音频采集技术

    在制作发布端的时候,需要采集到声卡的输出信号,以便与麦克风的输入信号进行混音,对于音频处理的技术,主要有如下几种: 采集麦克风输入 采集声卡输出 将音频数据送入声卡进行播放 对多路音频输入进行混音处理 ...

随机推荐

  1. 第12组 Alpha冲刺(4/6)

    Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 由于这两天在修bug,燃尽图没有下降 展示Git当日代码/文档签入记录(组内共享) 注: 由于Git ...

  2. element ui 怎么去修改el-date-picker的时间

    <el-date-picker v-model="formSearch.timeRange" type="daterange" placeholder=& ...

  3. 第06组 Alpha事后诸葛亮

    一.组长博客: https://www.cnblogs.com/mhq-mhq/p/11923194.html 二.Postmortem模板 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚 ...

  4. vue中使用百度地图vue-baidu-map

    安装 npm install vue-baidu-map --save 全局注册 全局注册将一次性引入百度地图组件库的所有组件.需在入口文件main.js中引入vue-baidu-map import ...

  5. 删除N天前的log日志文件:RollingFileAppender,DailyRollingFileAppender,/etc/cron

    1. 如果您使用的是Log4j,且采用的RollingFileAppender方式, 通过设置maxBackupIndex属性来指定要保留的日志文件数的最大值可以间接实现删除N天前的日志文件. 2. ...

  6. python实现读取并显示图片的两种方法

    https://www.cnblogs.com/lantingg/p/9259840.html 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片. ...

  7. postgresql - relation 权限相关问题

    GRANT ALL PRIVILEGES ON DATABASE 数据库.[schema] TO [用户名]; GRANT ALL ON schema [schema] TO [用户名]; GRANT ...

  8. ubuntu16.04安装wkhtmltopdf参考

    wkhtmltopdf是一款Html转pdf的工具, 下载地址:https://wkhtmltopdf.org/downloads.html 安装步骤: ----下载ubuntu下的wkhtmltop ...

  9. spark-submit --files 动态加载外部资源文件

    在做spark时,有些时候需要加载资源文件,需要在driver或者worker端访问.在client模式下可以使用IO流直接读取,但是在cluster模式下却不能直接读取,需要如下代码: val is ...

  10. Qt开发经验小技巧1-10

    当编译发现大量错误的时候,从第一个看起,一个一个的解决,不要急着去看下一个错误,往往后面的错误都是由于前面的错误引起的,第一个解决后很可能都解决了. 定时器是个好东西,学会好使用它,有时候用QTime ...