오디오 장치 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) 작동 여부를 지정합니다.
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
};
void destroyAllAudioDevices ( )
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);