다음을 통해 공유


파일 읽기용 버퍼 할당

가장 기본적인 파일 읽기 시나리오에서 샘플을 제공하는 데 사용되는 버퍼는 읽기 개체(판독기 개체 또는 동기 판독기 개체)에 의해 할당됩니다. 그러나 버퍼를 직접 할당할 수 있습니다. 사용자 고유의 버퍼 할당의 이점에 대한 자세한 내용은 사용자 할당 샘플 지원을 참조하세요.

파일 읽기에 사용자 고유의 버퍼를 사용하려면 다음 단계를 수행합니다.

  1. 버퍼가 필요할 때 판독기가 호출할 콜백 또는 콜백을 구현합니다. 출력 샘플을 읽는 경우 IWMReaderAllocatorEx::AllocateForOutputEx를 사용합니다. 스트림 샘플을 읽는 경우 IWMReaderAllocatorEx::AllocateForStreamEx를 사용합니다. 애플리케이션에 적합한 버퍼를 관리하기 위한 논리를 포함합니다.
  2. 파일 읽기에 사용할 버퍼 풀을 할당합니다.
  3. 읽기용 읽기 권한자 또는 동기 판독기를 설정합니다. 자세한 내용은 비동기 판독기를 사용하여 파일 읽기 또는 동기 판독 기를 사용하여 파일 읽기를 참조하세요.
  4. 쓰기를 시작하기 전에 판독기 개체를 사용하여 버퍼를 할당하는 각 출력 및 스트림에 대해 IWMReaderAdvanced::SetAllocateForOutput 또는 IWMReaderAdvanced::SetAllocateForStream 을 호출합니다. 동기 판독기에서 IWMSyncReader2::SetAllocateForOutput 또는 IWMSyncReader2::SetAllocateForStream 을 대신 호출합니다.
  5. 파일 읽기를 시작합니다.

읽기 개체는 적절한 할당자 콜백을 호출하고 애플리케이션에서 샘플을 가져옵니다. 버퍼 관리 논리에는 버퍼를 다시 사용할 수 있음을 알리는 방법이 포함되어야 합니다. 일반적으로 버퍼는 콘텐츠가 렌더링될 때 풀에 다시 배치됩니다. 애플리케이션에 따라 풀에 버퍼가 몇 개나 필요할 수 있습니다.

ASF 파일 읽기