DirectMusic DirectMusic C++ 샘플 Audio Path 샘플   [목차열람] [주소복사] [슬롯비우기]
Audio Path 샘플
 
Microsoft DirectX 9.0

Audio Path 샘플

Audio Path 샘플에서는, 1 개의 오디오 패스로 복수가 다른 사운드를 재생하는 방법과 오디오 패스에서의 변경을 모든 사운드의 파라미터에 반영할 방법이 나타나고 있다.

패스

소스 :(SDK 루트) \Samples\C++\DirectMusic\AudioPath

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

사용자가이드

다양한 사운드를 재생하려면 ,[Lullaby],[Snore],[Mumble] 를 클릭한다. 3D 공간에서의 사운드의 위치를 조정하려면 , 슬라이더를 사용한다. 다른 사운드를 재생해 다른 모든 사운드를 정지하려면 ,[Rude Awakening] 를 클릭한다.

프로그래밍 메모

이 샘플은,Play Audio 샘플과 형식이 자주(잘) 비슷하다. Audio Path 샘플에서는, 오디오 패스의 다양한 사용법이 몇개인가 나타나고 있다.

WM_INITDIALOG 에서는,OnInitDialog 함수는 다음의 처리를 실행한다.

  1. IDirectMusicPerformance8::CreateStandardAudioPath 를 호출해, DMUS_APATH_DYNAMIC_3D 를 건네주어 3D 오디오 패스를 생성 한다. 생성 된 IDirectMusicAudioPath8 인터페이스는,g_p3DAudiopath 로 나타난다.
  2. CMusicManager 프레임워크(framework) 클래스를 사용해, 파일의 리스트로부터 CMusicSegment 개체를 생성 한다.
  3. 오디오 패스로부터 IDirectSound3DListener8 인터페이스를 얻어온다.
  4. IDirectSound3DListener8::SetRolloffFactor 를 호출해, 사운드의 진폭의 거리가 떨어지는 것에 따라 소멸 할 때의 비율을 변경한다.

3D 위치 슬라이더가 변경되면SetPosition 함수는 다음의 처리를 실행한다.

  1. IDirectMusicAudioPath8::GetObjectInPath 를 호출해 IDirectSound3DBuffer8 인터페이스를 얻어온다.
  2. IDirectSound3DBuffer8::SetPosition 를 호출해 버퍼의 위치를 설정한다.
  3. 버퍼를 릴리즈 한다.

세그먼트(segment)를 연주 하면,PlaySegment 함수는 다음의 처리를 실행한다.

참조

↑TOP