虽然 AAudio 试图提供一种直接的硬件访问途径,但在某些场景下,如处理兼容性问题、使用系统服务(如 AudioFlinger)或者在某些设备上,使用 AudioTrack 可能是最有效或最合适的途径。这并不违背 AAudio 的初衷,因为它的目标是提供高性能的音频处理,而不是避免使用系统服务。在某些实现中,如果能通过 AudioTrack 实现这一目标,那么使用 AudioTrack 就是合理的策略。
        所以,这里我们来看一下 builder_createStream() 方法中的另一个分支。

一、创建音频流

1、AudioStreamBuilder.cpp  

源码位置:/frameworks/av/media/libaaudio/src/core/AudioStreamBuilder.cpp 

builder_createStream

static aaudio_result_t builder_createStream(aaudio_direction_t direction, aaudio_sharing_mode_t sharingMode,
            bool tryMMap, android::sp &stream) {
    aaudio_result_t result = AAUDIO_OK;

    switch (direction) {
        case AAUDIO_DIRECTION_INPUT:
            if (tryMMap) {
                stream = new AudioStreamInternalCapture(AAudioBinderClient::getInstance(), false);
            } else {
        
本站无任何商业行为
个人在线分享-虚灵IT资料分享 » Android AAudio——C API创建AudioTrack(六)
E-->