다음을 통해 공유


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 인터페이스

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

콜백 메서드 사용하기