비동기 판독기를 사용하여 파일 읽기
[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 작성기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
비동기 판독기는 여러 스레드 및 비동기 호출을 사용하여 ASF 파일에서 콘텐츠를 읽습니다. 비동기 판독기에서 지원하는 기능은 최종 사용자에게 콘텐츠를 렌더링하는 애플리케이션에 적합합니다.
판독기 개체의 가장 기본적인 기능은 다음 단계로 나눌 수 있습니다. 이러한 단계에서 "애플리케이션"은 Windows Media Format SDK를 사용하여 작성하는 프로그램을 나타냅니다.
- 애플리케이션은 IWMReaderCallback 인터페이스를 구현하여 판독기에서 메시지를 처리합니다. 여기에는 읽기 프로그램의 다양한 측면의 상태 관련된 메시지를 수신하는 OnStatus와 판독기에서 압축되지 않은 샘플을 수신하는 OnSample이라는 두 가지 콜백 메서드가 포함됩니다.
- 애플리케이션은 읽을 파일의 이름을 판독기에게 전달합니다. 판독기가 파일을 열면 각 스트림에 출력 번호를 할당합니다. 파일이 상호 제외를 사용하는 경우 판독기는 상호 배타적인 모든 스트림에 대해 단일 출력을 할당합니다.
- 애플리케이션은 판독기에서 다양한 출력의 구성에 대한 정보를 가져옵니다. 수집된 정보를 통해 애플리케이션은 미디어 샘플을 제대로 렌더링할 수 있습니다.
- 애플리케이션은 판독기에게 파일에서 데이터 읽기를 시작하도록 지시합니다. 판독기는 버퍼 개체로 래핑된 버퍼에서 한 번에 하나씩 OnSample 콜백에 압축되지 않은 샘플을 제공하기 시작합니다. 판독기에서 제공하는 샘플은 프레젠테이션 시간 순서입니다. 판독기는 애플리케이션에 의해 중지되거나 파일의 끝에 도달할 때까지 샘플을 계속 배달합니다.
- 애플리케이션은 판독기에서 데이터를 배달한 후 렌더링할 책임이 있습니다. Windows Media Format SDK는 렌더링 루틴을 제공하지 않습니다. 일반적으로 애플리케이션은 다른 SDK를 사용하여 Microsoft DirectX® SDK 또는 Microsoft Windows 플랫폼 SDK 멀티미디어 함수와 같은 데이터를 렌더링합니다.
- 읽기가 완료되면 애플리케이션은 판독기에게 파일을 닫도록 지시합니다.
이러한 단계는 AudioPlayer 샘플 애플리케이션에 설명되어 있습니다. 자세한 내용은 샘플 애플리케이션을 참조하세요.
판독기는 고급 기능도 지원합니다. 판독기를 사용하면 다음을 수행할 수 있습니다.
- 파일 재생을 일시 중지합니다.
- 판독기 성능 통계를 검색합니다.
- 상호 배타적인 스트림에 대한 스트림 선택을 제어합니다.
- 출력에 버퍼를 수동으로 할당합니다.
- 사용자 고유의 시계를 제공합니다.
- 파일 작업의 상태 검색합니다(버퍼링, 다운로드 또는 저장).
- 표준 COM 인터페이스인 IStream을 사용하여 파일을 엽니다.
- ASF 파일에서 특정 지점을 찾습니다.
- 파일의 헤더에서 프로필 데이터를 읽습니다.
다음 섹션에서는 판독기 개체의 사용에 대해 자세히 설명합니다.
- OnStatus 콜백에서 판독기 메시지를 구현하려면
- OnSample 콜백을 구현하려면
- 읽기 프로그램을 만들고 파일을 열려면
- 비동기 판독기를 사용하여 미디어 샘플을 검색하려면
- 비동기 판독기를 사용하여 시간별로 검색하려면
- 비동기 판독기를 사용하여 프레임 번호로 검색하려면
- 비동기 판독기를 사용하여 SMPTE 시간 코드로 검색하려면
- 표식을 찾으려면
- 재생을 일시 중지하거나 중지하려면
- 읽기 권한자 성능 통계를 얻으려면
- 수동 스트림 선택을 사용하려면
- 비동기 판독기를 사용하여 압축된 샘플을 제공하려면
관련 항목