다음을 통해 공유


비동기 판독기를 사용하여 파일 읽기

[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 작성기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

비동기 판독기는 여러 스레드 및 비동기 호출을 사용하여 ASF 파일에서 콘텐츠를 읽습니다. 비동기 판독기에서 지원하는 기능은 최종 사용자에게 콘텐츠를 렌더링하는 애플리케이션에 적합합니다.

판독기 개체의 가장 기본적인 기능은 다음 단계로 나눌 수 있습니다. 이러한 단계에서 "애플리케이션"은 Windows Media Format SDK를 사용하여 작성하는 프로그램을 나타냅니다.

  1. 애플리케이션은 IWMReaderCallback 인터페이스를 구현하여 판독기에서 메시지를 처리합니다. 여기에는 읽기 프로그램의 다양한 측면의 상태 관련된 메시지를 수신하는 OnStatus와 판독기에서 압축되지 않은 샘플을 수신하는 OnSample이라는 두 가지 콜백 메서드가 포함됩니다.
  2. 애플리케이션은 읽을 파일의 이름을 판독기에게 전달합니다. 판독기가 파일을 열면 각 스트림에 출력 번호를 할당합니다. 파일이 상호 제외를 사용하는 경우 판독기는 상호 배타적인 모든 스트림에 대해 단일 출력을 할당합니다.
  3. 애플리케이션은 판독기에서 다양한 출력의 구성에 대한 정보를 가져옵니다. 수집된 정보를 통해 애플리케이션은 미디어 샘플을 제대로 렌더링할 수 있습니다.
  4. 애플리케이션은 판독기에게 파일에서 데이터 읽기를 시작하도록 지시합니다. 판독기는 버퍼 개체로 래핑된 버퍼에서 한 번에 하나씩 OnSample 콜백에 압축되지 않은 샘플을 제공하기 시작합니다. 판독기에서 제공하는 샘플은 프레젠테이션 시간 순서입니다. 판독기는 애플리케이션에 의해 중지되거나 파일의 끝에 도달할 때까지 샘플을 계속 배달합니다.
  5. 애플리케이션은 판독기에서 데이터를 배달한 후 렌더링할 책임이 있습니다. Windows Media Format SDK는 렌더링 루틴을 제공하지 않습니다. 일반적으로 애플리케이션은 다른 SDK를 사용하여 Microsoft DirectX® SDK 또는 Microsoft Windows 플랫폼 SDK 멀티미디어 함수와 같은 데이터를 렌더링합니다.
  6. 읽기가 완료되면 애플리케이션은 판독기에게 파일을 닫도록 지시합니다.

이러한 단계는 AudioPlayer 샘플 애플리케이션에 설명되어 있습니다. 자세한 내용은 샘플 애플리케이션을 참조하세요.

판독기는 고급 기능도 지원합니다. 판독기를 사용하면 다음을 수행할 수 있습니다.

  • 파일 재생을 일시 중지합니다.
  • 판독기 성능 통계를 검색합니다.
  • 상호 배타적인 스트림에 대한 스트림 선택을 제어합니다.
  • 출력에 버퍼를 수동으로 할당합니다.
  • 사용자 고유의 시계를 제공합니다.
  • 파일 작업의 상태 검색합니다(버퍼링, 다운로드 또는 저장).
  • 표준 COM 인터페이스인 IStream을 사용하여 파일을 엽니다.
  • ASF 파일에서 특정 지점을 찾습니다.
  • 파일의 헤더에서 프로필 데이터를 읽습니다.

다음 섹션에서는 판독기 개체의 사용에 대해 자세히 설명합니다.

ASF 파일 읽기

판독기 개체