오디오 큐 생성 함수에 대한 간단한 해설
audio_create_play_queue 함수는 오디오를 위한 버퍼 큐를 준비합니다. 이 함수를 사용하기 위해서는 데이터 형식, 샘플 속도, 그리고 오디오 채널을 지정해야 합니다.
함수 설명
매개변수
| 매개변수 | 유형 | 설명 |
|---|---|---|
| queueFormat | Buffer Data Type Constant | 사용할 버퍼 데이터의 형식 (buffer_u8 혹은 buffer_s16을 지원) |
| queueRate | Real | 버퍼 큐에 있는 데이터의 샘플 속도 (1000hz ~ 48000hz) |
| queueChannels | Audio Channel Constant | 아래에 나열된 상수 중 하나를 사용하여 채널 지정 |
지원되는 오디오 채널 상수
| 상수 | 설명 |
|---|---|
| audio_mono | 모노 (단일 채널) |
| audio_stereo | 스테레오 (이중 채널) |
| audio_3d | 3D (5.1 서라운드) |
반환 값
이 함수는 오디오 큐 ID를 반환합니다.
주의 사항
- 이 함수를 사용하여 생성한 오디오 큐는 더 이상 필요하지 않을 때
audio_free_play_queue()함수를 사용하여 해제해야 메모리 누수를 방지할 수 있습니다. - 오디오 큐의 각 버퍼가 끝나면
Audio Playback Asynchronous Events가 발생합니다. 이 이벤트에서는 특별한DS map이 생성되며, 변수async_load에 다음의 키/값 쌍이 포함됩니다: - "queue_id": 큐의 ID
- "buffer_id": 더 이상 재생되지 않는 버퍼의 ID
- "queue_shutdown": 일반 재생 중에는 0,
audio_free_play_queue()가 호출되었을 때는 1로 설정됩니다. 1일 경우, 더 이상의 데이터를 큐에 추가하지 않도록 해야 합니다.
함수 사용 예제
audio_queue = audio_create_play_queue(buffer_s16, 11052, audio_mono);
위 코드는 새로운 오디오 큐를 생성하고, 그 ID를 변수에 할당하여 나중에 참조할 수 있게 합니다.
활용 및 응용 예제
- 간단한 오디오 재생:
gml var audio_buffer = audio_load_sound("sound_file.wav"); var audio_queue = audio_create_play_queue(buffer_s16, 44100, audio_stereo); audio_queue_add_buffer(audio_queue, audio_buffer); audio_play_audio_queue(audio_queue); - 메모리 관리:
gml if (audio_queue != undefined) { audio_free_play_queue(audio_queue); audio_queue = undefined; }
이러한 사용 예제를 통해 audio_create_play_queue 함수가 어떻게 활용될 수 있는지 이해할 수 있습니다. 이 함수를 통해 다양한 오디오 효과 및 기능을 구현할 수 있습니다.