🌐 한국어

    오디오 장치 API#

    헤더 파일#

    OasisMedia.h

    함수#

    int32_t createAudioDevice ( key_value_map_t & parameters )
    OasisMedia.h
    오디오 장치를 초기화 합니다.
    매개변수
    parameters  오디오 장치 초기화에 필요한 key-value map 입니다.
    리턴값
    • 0: 성공
    • -1: 실패

    oasis::createAudioDevice 함수의 매개변수로 전달할 수 있는 key-value map은 아래와 같습니다.

    기본값
    필수
    설명
    types
    오디오 장치의 역할을 지정합니다. sink, source, sink,source 중 하나 값으로 지정할 수 있습니다. sink는 출력(스피커), source는 입력(마이크)를 의미합니다.
    path
    오디오 장치 경로를 지정합니다. 장치 경로는 hw:0,0과 같은 hw:<card>,<device> 형식의 HW 장치 경로나 default와 같은 ALSA용 장치 이름을 사용할 수 있습니다. aplay -l, aplay -L, arecord -l, 또는 arecord -L 등 명령어로 확인할 수 있습니다.
    always-on
    0
     
    오디오 장치를 항상 동작 상태로 유지할 지를 지정합니다. "1"인 경우, 오디오 장치 사용자가 없어도 오디오 장치가 열려있습니다.
    aec-disabled
    1
     
    Acoustic Echo Cancellation(AEC) 작동 여부를 지정합니다. 기본값은 AEC 작동하지 않습니다.
    denoise-enabled
    0
     
    잡음제거 작동 여부를 지정합니다. 기본값은 잡음제거를 하지 않습니다. AEC가 활성화될 경우, 잡음제거 기능도 활성화됩니다.
    snd-input-channels
    1
     
    입출력 채널 수를 지정합니다.
    snd-input-sample-size
    16
     
    샘플 크기(비트)를 지정합니다.
    snd-input-sampling-rate
    8000
     
    샘플링 레이트(Hz)를 지정합니다. 하드웨어 장치가 지원하는 값을 지정해야 합니다.
    snd-input-sampling-duration-msec
    40
     
    샘플링 버퍼 크기를 시간단위(밀리초)로 지정합니다. 하드웨어 오디오 장치에 따라 샘플링 레이트와 함께 설정이 달라질 수 있습니다.
    int32_t restartAudioDevice ( const char * device_path , int32_t direction = SND_DIR_BOTH )
    OasisMedia.h
    오디오 장치를 재시작합니다.
    매개변수
    device_path  createAudioDevice에서 지정한 오디오 장치 경로입니다.
    direction  재시작할 오디오 장치 타입을 지정합니다. SND_DIR_OUT, SND_DIR_IN, SND_DIR_BOTH 중 하나 값으로 지정할 수 있습니다.
    리턴값
    • 0: 성공
    • -1: 실패

    direction은 OasisMedia.h에 아래 값으로 정의되어 있습니다.

    enum {
        SND_DIR_OUT = 1, //speaker
        SND_DIR_IN = 2,  //mic
        SND_DIR_BOTH = 3 //speaker+mic
    };
    
    OasisMedia.h
    모든 오디오 장치를 제거합니다.

    예제#

    아래는 oasis::initialize 호출 후에 오디오 장치를 생성하는 예입니다.

    
    #if 0
    #define SND_PATH "default"
    #else
    #define SND_PATH "hw:0,0"
    #endif
    
    oasis::key_value_map_t parameters;
    
    parameters["types"]="sink";
    parameters["path"]=SND_PATH;
    parameters["always-on"]="0";
    parameters["aec-disabled"]="1";
    parameters["snd-input-channels"]="2";
    parameters["snd-input-sample-size"]="16";
    parameters["snd-input-sampling-duration-msec"]="40";
    parameters["snd-input-sampling-rate"]="48000";
    
    oasis::createAudioDevice(parameters);