AudioTrack:
AudioTrack是Android的PCM播放音频组件,只能用来播放PCM数据,因此AudioTrack往往配合软解组件或者MediaCodec硬解一起工作。大部分情况下,音频的解码都是软解来负责,或者直接交由音频播放设备进行设备端的硬解,使用MediaCodec进行音频解码的情况较少。
libaudioclient:
libaudioclient 是AudioTrack的动态库包,这个如果要使用AudioTrack,则需要包含此动态库,这个库是android内部库,提供了 JAVA 封装,没有提供 ndk 封装。
libaaudio:
libaaudio 对 libaudioclient进行了 ndk 封装,因此如果想使用 AudioTrack 在 c++ 中播放 pcm 数据,则需要使用此库。
参考:https://developer.android.com/ndk/guides/audio/aaudio/aaudio?hl=zh-cn
关系:
NDK libaaudio --> libaudioclient (内含AudioTrack)
参考:
https://source.android.com/docs/core/audio/implement?hl=zh-cn
https://developer.android.com/reference/android/media/AudioTrack
Android Audio: Play a WAV file on an AudioTrack « Mind The Robot