文档章节

各种录音

UMU
 UMU
发布于 2017/07/20 17:42
字数 298
阅读 96
收藏 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

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

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

MarsDes
05/11
0
0
在李笑来的录音里面,我听到的是满满的干货

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

唐晓阳
07/04
0
0
FL Studio常见问题之通道窗口和步进音序器的设置

水果软件是一款众所熟知的水果软件, 全能音乐制作环境或数字音频工作。FL Studio可以编曲、剪辑、录音、混音,让你的计算机成为全功能录音室。 FL Studio中文网站:http://www.flstudiochin...

Abby88
2017/10/24
0
0
ATTabandHoldAudioRecord

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

红薯
2013/08/26
262
0
Unity社交功能开发——语音聊天

手游交互性的地位从2015年网易的《梦幻西游》、《大话西游》到近期出的各种《XX传奇》,手机游戏的交互被提到了越来越高的地位。手机游戏不再是那种“快餐”,不再是单纯地比较玩法,越来越多...

tj134679258
2016/03/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
1
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
23
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
1
0
emoji

前言:随着iOS系统版本的升级,对原生emoji表情的支持也越来越丰富。emoji表情是unicode码中为表情符号设计的一组编码,当然,还有独立于unicode的另一套编码SBUnicode,在OS系统中,这两种编...

HeroHY
昨天
2
0
rabbitmq学习(二)

生产者消费者初级案列 ChannelUtils package com.hensemlee.rabbitmq;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.Connecti......

hensemlee
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部