다음을 통해 공유


DuckingCaptureSample

이 샘플 애플리케이션에서는 통신 스트림을 열고 닫고 애플리케이션이 스트림 감쇠를 구현할 수 있는 더킹 이벤트를 발생시키는 방법을 보여 줍니다. 이 애플리케이션은 핵심 오디오 API를 사용하여 통신 디바이스에서 오디오 데이터를 읽고 출력 디바이스에서 재생하는 채팅 클라이언트를 구현합니다.

이 항목에는 다음과 같은 섹션이 포함되어 있습니다.

설명

이 샘플에서는 다음 기능을 보여 줍니다.

  • 멀티미디어 디바이스 열거 및 선택용 MMDevice API.
  • 통신 캡처 및 렌더링 디바이스, 스트림 관리 작업 및 더킹 이벤트 처리에 액세스하기 위한 WASAPI입니다.
  • 통신 디바이스에 액세스하고 오디오 입력을 캡처하기 위한 WAVE API입니다.

요구 사항

제품 버전
Windows SDK Windows 7
Visual Studio 2008

 

샘플 다운로드

이 샘플은 다음 위치에서 사용할 수 있습니다.

위치 Path/URL
Windows SDK \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\DuckingCaptureSample\...

 

예제 빌드

DuckingCaptureSample 샘플을 빌드하려면 다음 단계를 사용합니다.

  1. Visual Studio 2008에서 DuckingCaptureSample.sln을 엽니다.
  2. 창 내에서 디버그 또는 릴리스 솔루션 구성을 선택하고 메뉴 모음에서 빌드 메뉴를 선택하고 빌드 옵션을 선택합니다. SDK용 CMD 셸에서 Visual Studio를 열지 않으면 Visual Studio는 SDK 빌드 환경에 액세스할 수 없습니다. 이 경우 프로젝트 파일 DuckingCaptureSample.vcproj에 사용되는 환경 변수 MSSdk를 명시적으로 설정하지 않으면 샘플이 빌드되지 않습니다.

샘플 실행

애플리케이션을 성공적으로 빌드하면 DuckingCaptureSample.exe 실행 파일이 생성됩니다. 실행하려면 디버그 메뉴에서 디버깅 시작 또는 디버깅하지 않고 시작을 선택하거나 명령 창을 입력 DuckingCaptureSample 합니다.

DuckingCaptureSample은 기본 콘솔 디바이스에서 오디오를 캡처하는 두 가지 구현인 WASAPI 및 웨이브 API를 사용자에게 제공합니다. 캡처 세션을 시작하려면 모드를 선택하고 애플리케이션의 사용자 인터페이스에서 시작을 클릭합니다. 세션을 종료하려면 중지를 클릭합니다. 사용자가 지정한 디바이스(입력 또는 출력)에 따라 애플리케이션은 MMDevice API를 사용하여 기본 렌더링 또는 캡처 통신 디바이스에 대한 참조를 가져옵니다. 사용자가 채팅 세션을 시작한 후 애플리케이션은 다음 작업을 수행합니다.

  • 이벤트 기반 모드에서 오디오 클라이언트를 만들고 초기화합니다.
  • 샘플을 캡처하거나 렌더링할 준비가 되었음을 알리는 이벤트 핸들에 클라이언트를 연결합니다.
  • 전송에 대한 캡처 클라이언트 및 렌더링 클라이언트를 설정합니다.
  • 채팅 스레드를 만들고 오디오 엔진을 시작합니다.

각 처리 단계와 함께 오디오 데이터를 캡처하기 위해 샘플은 캡처 클라이언트를 사용하여 버퍼에서 사용할 수 있는 총 캡처된 데이터 양을 얻고, 기본 입력 디바이스에서 데이터를 읽고, 패킷을 해제하고, 버퍼를 캡처된 다음 데이터 집합을 읽을 수 있도록 합니다.

렌더링을 위해 애플리케이션은 캡처 엔드포인트 버퍼에서 재생하기 위해 대기 중인 데이터의 양을 결정합니다. 따라서 버퍼에 쓰고 모든 데이터가 기록될 때까지 다음 처리 단계에 대비하여 버퍼를 해제합니다. 렌더링의 경우 오디오 엔진이 시작 시 결함이 발생하지 않도록 자동 프레임이 미리 등록됩니다. DuckingCaptureSample은 볼륨 믹서에서 렌더링 스트림을 숨기는 방법도 보여 줍니다.

스트림 감쇠 기능에 대한 자세한 내용은 통신 디바이스 사용을 참조하세요.

핵심 오디오 API를 사용하는 SDK 샘플