文档章节

各种录音

UMU
 UMU
发布于 2017/07/20 17:42
字数 298
阅读 100
收藏 0

挖掘奇葩需求,把录音做到极致。

从外设录音

最典型的就是麦克风,内置麦克风、外置麦克风,其实还有一种通过 LineIn 插入的其它播放器设备,比如 CD、DVD 等。

采集这种音频的方法可以只用 ffmpeg 搞定:av_find_input_format("dshow")...,也可以用 CoreAudio 搞定:

enumerator->EnumAudioEndpoints(eCapture, DEVICE_STATE_ACTIVE, ...
audio_client->Initialize(AUDCLNT_SHAREMODE_SHARED, AUDCLNT_STREAMFLAGS_EVENTCALLBACK ...

从播放设备回放录音

采集方式是用 CoreAudio:

enumerator->(eRender, DEVICE_STATE_ACTIVE, ...
audio_client->Initialize(AUDCLNT_SHAREMODE_SHARED, AUDCLNT_STREAMFLAGS_LOOPBACK, ...

这种方式会混音,比如说您开个 foobar 播歌,再开个 QQ 影音看电影,则会录到这两个应用程序的混音,嗯,如果 QQ 再嘀嘀嘀,也是会混进去的……

只录制某个应用程序的音

比前一种更先进一些,多个播放器同时播歌,我们可以只录其中一个。当然这个技术还有其它用途……

采集方法是:Hook CoreAudio。

另一个思路是:Hook 到这个应用,给它单独指定一个输出设备,其它应用不能用,否则还是混音了,然后用前面的回放录音技术录制这个独占的输出设备。

© 著作权归作者所有

共有 人打赏支持
UMU

UMU

粉丝 119
博文 112
码字总数 44043
作品 0
厦门
程序员
私信 提问
小程序 音频API采坑完全手册

最近公司上线一个类似小打卡的一个小程序,基于WEPY开发。 其他都功能点都还好,录音跟音频播放的功能点踩各种莫名其妙的坑,社区也有不少人在提问,特写此文祭天 产品大概的UI如下图 录音功能...

MarsDes
05/11
0
0
Android音视频开发之使用AudioRecord采集音频

AudioRecord 是 Android 系统提供的用于实现录音功能的 API,官方文档是这么解释的: AndioRecord类的主要功能是让各种Java应用能够管理音频资源,以便它们通过此类能够录制声音相关的硬件所...

落英坠露
10/30
0
0
在李笑来的录音里面,我听到的是满满的干货

先说干货: 要有社群,有社群就有共识,有共识就有价值; 要有技术,技术是支撑; 在币圈,价值投资行不通,很多价值并不高的币价格却很高; 政策不明朗更好,这样才有普通人的空间,不然根本...

唐晓阳
07/04
0
0
北京的技术注意了,曝光华数康无良企业!

《北京华数康数据科技有限公司》,用强制手段开除码农,一点赔偿不给,甚至拖欠码农6月份工资至今还未发放,目前码农手中有公司CIO(剑桥大学博士后)和码农的谈话录音,录音中高管对码农进行各...

gitladdy
2017/08/17
3.2K
28
ATTabandHoldAudioRecord

ATTabandHoldAudioRecord 提供各种声音可视效果的录音功能。要求 ARC、F3BarGauge 和 F3PlotStrip 支持。

红薯
2013/08/26
262
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
11
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
17
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
11
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部