DirectSound DirectSound 의 사용법 DirectSound 의 재생 개체   [목차열람] [주소복사] [슬롯비우기]
DirectSound 의 재생 개체
 
Microsoft DirectX 9.0

DirectSound 의 재생 개체

사운드의 재생에서는, 이하의 개체가 사용된다.

개체 목적 메인 인터페이스
장치 애플리케이션 마다 1 개 장치를 관리해, 사운드 버퍼를 생성 한다. IDirectSound8
2차 버퍼 사운드 마다 1 개 스태틱 사운드 또는 스트리밍 사운드를 관리해, 1차 버퍼로 재생한다. IDirectSoundBuffer8 ,IDirectSound3DBuffer8 ,IDirectSoundNotify8
1차 버퍼 애플리케이션 마다 1 개 2차 버퍼로부터의 사운드를 믹싱 해 재생한다. 또, 글로벌 3D 파라미터를 제어한다. IDirectSoundBuffer,IDirectSound3DListener8
이펙트 2차 버퍼 마다 0 이상 2차 버퍼의 사운드를 변환한다. 특정의 이펙트에 대한 인터페이스,IDirectSoundFXChorus8

애플리케이션에 DirectSound 를 처리 하는 최초의 스텝은, 렌더링 장치를 나타내는 장치 개체를 생성 하는 것이다. 이 개체는, 그 후 버퍼를 생성 하기 위해서 사용된다.

주  DirectSound 는 Component Object Model (COM)에 근거하고 있다. 다만, 이펙트 DMO 를 사용하지 않는 이상CoInitialize 또는 CoInitializeEx 를 호출해 COM 를 명시적으로 초기화할 필요는 없다.

2차 버퍼의 생성과 관리는, 애플리케이션이 실시한다. 1차 버퍼는 DirectSound 에 의해 자동적으로 생성 및 관리되어 애플리케이션은, 이 개체에의 인터페이스를 취득하지 않고 사운드를 재생할 수 있다. 다만,IDirectSound3DListener8 인터페이스를 얻어오려면, 애플리케이션으로 1차 버퍼 개체를 명시적으로 생성 할 필요가 있다.

2차 버퍼내의 사운드를 재생 하면, DirectSound 는 1차 버퍼로 이것들을 믹싱 해, 렌더링 장치에 보낸다. DirectSound 를 믹싱 할 수 있는 버퍼수는 처리 시간에만 제한되어 처리 시간이 허락하는 한 믹싱 할 수 있다.

주  WDM (Windows Driver Model)에서는, 믹싱은 커널 믹서에 의해 행해지므로, 1차 버퍼는 실제로는 데이터를 보관 유지하지 않는다. 더 자세한 정보는, 「DirectSound 드라이버 모델」을 참조할것.

짧은 사운드는 전체를 2차 버퍼에 로드해, 언제라도 단순한 메서드의 호출에 의해 재생할 수 있다. 긴 사운드는 스트리밍 할 필요가 있다. 애플리케이션에서는, 재생 커서의 위치를 폴링 하거나 재생 커서가 특정의 위치에 도달했을 때에 통지를 요구하는 것에 의해, 버퍼에 넣는 데이터를 스트리밍 해야 하는 시기를 확인할 수 있다.

2차 버퍼는, 코러스나 메아리등의 이펙트를 보관 유지할 수 있다. 또, 2차 버퍼에는 3D 컨트롤의 능력도 있다. 글로벌 3D 파라미터는, 1차 버퍼에 대해 IDirectSound3DListener8 에 의해 제어된다.

↑TOP