耳返概述:
耳返主要实现监听的功能,在低延时的情况下可以给主播一个比较真实音频的反馈,在演唱会等专业场景里比较常用。
技术实现上来说就是要时时的把录制进的音频数据立刻播放出去,当然这个过程要低延迟。
AudioRecord,AudioTrack
在Android系统上做耳返,实现一个高性能的音频录制音频播放是一件很痛苦的事;因为我们并不能直接使用系统的AudioRecord,AudioTrack。这两个函数有很大的延迟,尤其是AudioTrack,不同的系统延迟范围在40ms到200ms之间。对于耳返来说有延迟感是不能忍受的。
那么不使用系统API实现,要怎么实现呢?
答案:直接和手机品牌厂商合作,拿到定制接口 hhh。
哈哈 ,如果你的公司有实力直接和各品牌厂商合作请忽略下面的内容。
OpenSL ES 和 AAudio
OpenSL ES:
OpenSL ES 是 Khronos Group 开发的 OpenSL ES™ API 规范的实现,专用于 Android。
NDK 软件包中OpenSL ES™ API 规范 Android 特定实现。利用这个库,不论是编写合成器、卡拉 OK、游戏还是其他实时应用,都可以使用 C 或 C++ 实现高性能、短延迟时间音频。
OpenSL ES Android demo: https://github.com/googlesamples/android-ndk/tree/master/au