需要实现的功能:
输入:hdmiin、uvc、mic可以实时切换
输出:耳机和HDMI OUT同时输出声音
这里注意:mic是存在hedset情况,4节耳机,即可输出又可输出同时进行
开发情况:
一、先熟悉大致的Android的音频架构及流程:
1.apk想要录音,播音的接口:常用接口
AudioManager:音频管理器,包括音量管理、AudioFocus管理、音频设备管理、模式管理;
录音:AudioRecord、MediaRecorder;
播放:AudioTrack、MedaiPlayer、SoundPool、ToneGenerator;
编解码:MediaCodec,音视频数据 编解码接口。
2.JNI
与 android.media 关联的 JNI 代码会调用较低级别的原生代码来访问音频硬件。JNI 位于 frameworks/base/core/jni/ 和 frameworks/base/media/jni 中。
3.Native framework 原生框架
原生框架提供相当于 android.media 软件包的原生软件包,它调用 Binder IPC 代理来访问媒体服务器的音频专属服务。 原生框架代码位于 frameworks/av/media/libmedia 中。
原生框架代码位于 frameworks/av/media/libmedia 或frameworks/av/media/libaudioclient中(不同版本,位置有所改变)。
4.Binder IPC
Binder IPC 代理用于促进跨越进程边界的通信。代理位于 frameworks/av/media/libmed