다음을 통해 공유


IMFByteStreamBuffering 인터페이스(mfidl.h)

바이트 스트림이 네트워크에서 데이터를 버퍼링하는 방법을 제어합니다.

이 인터페이스에 대한 포인터를 얻으려면 바이트 스트림 개체에서 QueryInterface 를 호출합니다.

상속

IMFByteStreamBuffering 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IMFByteStreamBuffering 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IMFByteStreamBuffering 인터페이스에는 이러한 메서드가 있습니다.

 
IMFByteStreamBuffering::EnableBuffering

버퍼링을 사용하거나 사용하지 않도록 설정합니다.
IMFByteStreamBuffering::SetBufferingParams

버퍼링 매개 변수를 설정합니다.
IMFByteStreamBuffering::StopBuffering

진행 중인 버퍼링을 중지합니다.

설명

바이트 스트림이 이 인터페이스를 구현하는 경우 미디어 원본은 이를 사용하여 바이트 스트림이 데이터를 버퍼링하는 방법을 제어할 수 있습니다. 이 인터페이스는 네트워크에서 데이터를 읽는 바이트 스트림을 위해 설계되었습니다.

이 인터페이스를 구현하는 바이트 스트림은 IMFMediaEventGenerator 인터페이스도 구현해야 합니다. 바이트 스트림이 버퍼링을 시작하면 MEBufferingStarted 이벤트를 보냅니다. 버퍼링을 중지하면 MEBufferingStopped 이벤트를 보냅니다.

바이트 스트림은 모든 MEBufferingStarted 이벤트에 대해 일치하는 MEBufferingStopped 이벤트를 보내야 합니다. 미디어 원본이 TRUE 값으로 EnableBuffering을 호출하여 버퍼링을 사용하도록 설정하지 않은 한 바이트 스트림은 MEBufferingStarted 이벤트를 보내지 않아야 합니다.

바이트 스트림이 MEBufferingStarted 이벤트를 보낸 후 다음 중 하나라도 발생하면 MEBufferingStopped 를 보내야 합니다.

  • 바이트 스트림은 데이터 버퍼링을 완료합니다.
  • 바이트 스트림이 스트림의 끝에 도달합니다.
  • 미디어 소스는 값이 FALSEEnableBuffering을 호출합니다.
  • 미디어 소스는 StopBuffering을 호출합니다.
바이트 스트림은 파일 끝에 도달한 후 더 이상 버퍼링 이벤트를 보내지 않아야 합니다.

버퍼링을 사용하지 않도록 설정하면 바이트 스트림이 버퍼링 이벤트를 보내지 않습니다. 그러나 내부적으로는 I/O 요청이 완료될 때까지 기다리는 동안에도 데이터를 버퍼링할 수 있습니다. 따라서 IMFByteStream 메서드를 완료하는 데 무기한 시간이 걸릴 수 있습니다.

바이트 스트림이 내부적으로 데이터를 버퍼링하고 미디어 원본이 TRUE 값으로 EnableBuffering을 호출하는 경우 바이트 스트림은 MEBufferingStarted를 즉시 보낼 수 있습니다.

프레젠테이션이 시작되면 미디어 원본이 전달되고 MEBufferingStartedMEBufferingStopped 이벤트가 시작되는 동안 수신해야 합니다. 미디어 세션은 버퍼링이 진행되는 동안 프레젠테이션 시계를 일시 중지하고 버퍼링이 완료되면 프레젠테이션 시계를 다시 시작합니다. 미디어 원본은 프레젠테이션이 재생되는 동안에만 이러한 이벤트를 전달해야 합니다. 이러한 이벤트를 미디어 세션으로 보내는 목적은 원본이 데이터를 버퍼링하는 동안 프레젠테이션 시간을 일시 중지하는 것입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 mfidl.h

추가 정보

IMFByteStream

IMFByteStreamCacheControl

미디어 파운데이션 인터페이스