DirectSound DirectSound 의 사용법 DirectSound 의 재생 개체 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
사운드의 재생에서는, 이하의 개체가 사용된다.
개체 | 수 | 목적 | 메인 인터페이스 |
장치 | 애플리케이션 마다 1 개 | 장치를 관리해, 사운드 버퍼를 생성 한다. | IDirectSound8 |
2차 버퍼 | 사운드 마다 1 개 | 스태틱 사운드 또는 스트리밍 사운드를 관리해, 1차 버퍼로 재생한다. | IDirectSoundBuffer8 ,IDirectSound3DBuffer8 ,IDirectSoundNotify8 |
1차 버퍼 | 애플리케이션 마다 1 개 | 2차 버퍼로부터의 사운드를 믹싱 해 재생한다. 또, 글로벌 3D 파라미터를 제어한다. | IDirectSoundBuffer,IDirectSound3DListener8 |
이펙트 | 2차 버퍼 마다 0 이상 | 2차 버퍼의 사운드를 변환한다. | 특정의 이펙트에 대한 인터페이스,IDirectSoundFXChorus8 등 |
애플리케이션에 DirectSound 를 처리 하는 최초의 스텝은, 렌더링 장치를 나타내는 장치 개체를 생성 하는 것이다. 이 개체는, 그 후 버퍼를 생성 하기 위해서 사용된다.
주 DirectSound 는 Component Object Model (COM)에 근거하고 있다. 다만, 이펙트
2차 버퍼의 생성과 관리는, 애플리케이션이 실시한다. 1차 버퍼는 DirectSound 에 의해 자동적으로 생성 및 관리되어 애플리케이션은, 이 개체에의 인터페이스를 취득하지 않고 사운드를 재생할 수 있다. 다만,IDirectSound3DListener8 인터페이스를 얻어오려면, 애플리케이션으로 1차 버퍼 개체를 명시적으로 생성 할 필요가 있다.
2차 버퍼내의 사운드를 재생 하면, DirectSound 는 1차 버퍼로 이것들을 믹싱 해, 렌더링 장치에 보낸다. DirectSound 를 믹싱 할 수 있는 버퍼수는 처리 시간에만 제한되어 처리 시간이 허락하는 한 믹싱 할 수 있다.
주 WDM (Windows Driver Model)에서는, 믹싱은 커널 믹서에 의해 행해지므로, 1차 버퍼는 실제로는 데이터를 보관 유지하지 않는다. 더 자세한 정보는, 「DirectSound 드라이버 모델」을 참조할것.
짧은 사운드는 전체를 2차 버퍼에 로드해, 언제라도 단순한 메서드의 호출에 의해 재생할 수 있다. 긴 사운드는 스트리밍 할 필요가 있다. 애플리케이션에서는, 재생 커서의 위치를 폴링 하거나 재생 커서가 특정의 위치에 도달했을 때에 통지를 요구하는 것에 의해, 버퍼에 넣는 데이터를 스트리밍 해야 하는 시기를 확인할 수 있다.
2차 버퍼는, 코러스나 메아리등의 이펙트를 보관 유지할 수 있다. 또, 2차 버퍼에는 3D 컨트롤의 능력도 있다. 글로벌 3D 파라미터는, 1차 버퍼에 대해 IDirectSound3DListener8 에 의해 제어된다.