之前的文章《测试.net开源音频库NAudio》中介绍了基于NAudio模块中的WaveInEvent和WaveFileWriter类实现基本的录音功能,但存在一个问题:本来想录制视频中的声音,但录音过程中会把麦克风中的杂音(挪动物品的声音、说话声音等)一并录进去。
NAudio模块中提供有WasapiLoopbackCapture类,能够获取特定输出设备的音频播放数据,再配合WaveFileWriter类即可避免出现杂音。使用比较简单,根据参考文献1中的介绍,直接将录音程序中的WaveInEvent类替换为WasapiLoopbackCapture类,不需要做其它改动,实际测试过程中也确实如此,采用WasapiLoopbackCapture类录制的网页中的视频播放声音,就算是在电脑的麦克风前大声说话或者播放手机声音,都不会被录进去。
WasapiLoopbackCapture类继承自WasapiCapture类,使用默认构造函数时获取的是默认的音频播放设备(默认应该为获取声卡数据),也可以调用MMDeviceEnumerator可举当前电脑中的所有音频设备,然后用MMDevice类对象实例作为输入参数传入WasapiLoopbackCapture类的构造函数,以录制指定设备的声音。
为了凑一下篇幅,再把使用的WasapiLoopbackCapture发一下
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)