DirectSound DirectSound C++ 샘플 Play Sound 샘플   [목차열람] [주소복사] [슬롯비우기]
Play Sound 샘플
 
Microsoft DirectX 9.0

Play Sound 샘플

설명

Play Sound 샘플에서는, DirectSound 의 2차 버퍼내의 WAV 파일을 재생하는 방법을 나타낸다.

패스

소스:(SDK 루트) \Samples\C++\DirectSound\PlaySound

실행 가능 파일:(SDK 루트) \Samples\C++\DirectSound\Bin

사용자가이드

[Sound File] 를 클릭해 WAV 파일을 로드한다. 반복해 재생하는 경우는,[Loop Sound] 를 선택한다. [Play] 를 클릭한다.

프로그래밍 메모

이 샘플에서는, DirectSound 버퍼내의 사운드를 재생하기 위해서 필요한, 다음의 기본적 태스크가 나타나고 있다.

DirectSound 의 설정

  1. DirectSoundCreate 함수를 호출해 DirectSound 개체를 생성 한다.
  2. IDirectSound8::SetCooperativeLevel 를 호출한다.
  3. 1차 버퍼 포맷을 설정한다. 이 샘플은, Dsutil.cpp 내의 DSUtil_SetPrimaryBufferFormat 함수를 호출해 이 처리를 실시한다.

DirectSound 버퍼에의 WAV 파일의 로드

  1. WAV 파일 헤더를 읽어들여 데이터의 사이즈와 포맷을 얻어온다.
  2. WAV 파일의 사이즈가 적절하면, 그 데이터와 같은 포맷으로, 파일 전체를 저장 할 수 있는 사이즈의 2차 버퍼를 생성 한다. WAV 파일이 너무 큰 경우는, 데이터는 버퍼에 스트리밍 된다. 「Stream Data 샘플」을 참조할것.
  3. 버퍼에 데이터를 기입한다. IDirectSoundBuffer8::Lock 를 호출해, 버퍼의 포인터를 얻어온다. 버퍼의 재생중은 데이터의 스트리밍은 행해지지 않기 때문에, 버퍼 전체를 잠글 수 있다. 메모리를 복사 한 후,IDirectSoundBuffer8::Unlock 를 호출한다.

DirectSound 버퍼의 재생

  1. 버퍼가 없어지지 않은지 어떤지를 조사한다. 없어졌을 경우는 복원한다.
  2. IDirectSoundBuffer8::Play 를 호출해 버퍼를 재생한다.

DirectSound 의 릴리즈

취득한 모든 DirectSound 인터페이스로 Release 를 호출한다. 버퍼를 릴리즈 하고 나서, DirectSound 개체를 릴리즈 한다.

참조

↑TOP