다음을 통해 공유


OnSample 콜백을 구현하려면

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

비동기 판독기는 IWMReaderCallback::OnSample 콜백 메서드를 호출하여 프레젠테이션 시간 순서로 제어 애플리케이션에 샘플을 제공합니다. 비동기 판독기를 사용하여 애플리케이션을 만들 때 압축되지 않은 샘플을 처리하려면 OnSample 을 구현해야 합니다. 일반적으로 콘텐츠를 렌더링하기 위해 만든 함수 또는 메서드는 OnSample 내에서 호출됩니다.

OnSample 콜백의 일반적인 구현에는 다음 단계가 포함됩니다.

  1. pSample로 전달된 버퍼에서 INSSBuffer::GetBufferAndLength를 호출하여 샘플이 포함된 버퍼의 위치 및 크기를 검색합니다.
  2. 출력 번호에 따라 논리를 분기합니다. 출력 번호는 OnSampledwOutputNumber로 전달됩니다.
  3. 지원하려는 각 출력 번호에 대한 렌더링 논리를 포함합니다. 여러 출력에서 샘플을 렌더링하는 경우 렌더링을 동기화해야 할 수 있습니다.

ASF 파일에서 압축된 샘플을 제공하는 애플리케이션은 IWMReaderCallbackAdvanced::OnStreamSample 콜백 메서드를 구현해야 합니다. OnStreamSample 은 출력 번호로 압축되지 않은 샘플 대신 스트림 번호로 압축된 샘플을 수신한다는 점을 제외하고 OnSample과 거의 동일하게 작동합니다.

IWMReaderCallback 인터페이스

IWMReaderCallbackAdvanced 인터페이스

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

콜백 메서드 사용