오디오 레코더 정보 가져오기
audio_get_recorder_info 함수는 주어진 레코더 소스 인덱스에 대한 정보를 포함하는 DS 맵을 반환합니다. 레코더 소스의 수를 확인하려면 audio_get_recorder_count() 함수를 사용할 수 있습니다. 반환된 맵은 다음의 키/값 쌍을 포함합니다:
| 키 | 설명 |
|---|---|
"name" |
장치를 설명하는 이름 |
"index" |
녹음을 위해 사용할 인덱스 |
"data_format" |
데이터가 반환될 형식 (현재는 항상 buffer_s16, 미래에는 다른 형식도 지원될 수 있음) |
"sample_rate" |
반환되는 데이터의 샘플링 레이트 (현재는 16000 Hz로 제한됨, 나중에 변경될 수 있음) |
"channels" |
일정한 값 audio_mono (미래에는 스테레오 및 3D를 위한 추가 상수가 지원될 수 있음) |
참고: 함수가 DS 맵을 생성하지만, 나중에 이를 삭제하지 않으므로 더 이상 필요하지 않을 때는 스스로 삭제해야 메모리 누수를 방지할 수 있습니다.
함수 사용법
구문
audio_get_recorder_info(recorder_index);
매개변수
| 매개변수 | 유형 | 설명 |
|---|---|---|
recorder_index |
Real | 정보 가져올 레코더 소스의 인덱스 |
반환 값
- DS 맵 ID
예제
다음은 비동기 오디오 레코딩 이벤트에서 호출되는 코드 예제입니다. 이 코드는 레코딩된 데이터를 버퍼에 할당한 후, 이를 오디오 큐에 추가하고 재생합니다.
len = async_load[? "data_len"];
audio_buff = buffer_create(len, buffer_fast, 1);
buffer_copy(async_load[? "buffer_id"], 0, len, buff, 0);
audio_queue_sound(audio_queue, audio_buff, 0, len);
audio_play_sound(audio_queue, 10, 0);
추가 활용 및 응용 예제
레코더 소스 확인
레코더의 사용 가능 여부를 확인하기 위해 아래와 같이 사용할 수 있습니다.
if audio_get_recorder_count() > 0 {
recorder_info = audio_get_recorder_info(0); // 첫 번째 레코더 정보 가져오기
show_debug_message("레코더 이름: " + recorder_info[? "name"]);
} else {
show_debug_message("사용 가능한 레코더가 없습니다.");
}
여러 레코더 정보 가져오기
모든 사용 가능한 레코더의 정보를 출력하는 예제입니다.
var count = audio_get_recorder_count();
for (var i = 0; i < count; i++) {
var info = audio_get_recorder_info(i);
show_debug_message("레코더 " + string(i) + ": " + info[? "name"] + ", 인덱스: " + string(info[? "index"]));
}
이러한 방법으로, 오디오 레코딩 기능을 손쉽게 활용할 수 있습니다. 이 정보를 통해 레코딩 장치를 선택하거나, 다양한 레코더 옵션을 사용자에게 제공할 수 있습니다.