다음을 통해 공유


네트워크 원본에서 파일 재생

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

네트워크에서 읽는 것은 로컬 파일을 읽는 경우와 근본적으로 다르지 않습니다. 애플리케이션은 URL을 판독기 개체의 IWMReader::Open 메서드에 전달하고 판독기 개체는 네트워크 프로토콜의 세부 정보를 처리합니다. 판독기 개체는 지능형 버퍼 관리를 사용하여 가능한 가장 원활한 재생을 제공합니다. 애플리케이션에서 판독기 개체의 네트워크 설정을 더 자세히 제어해야 하는 경우 IWMReaderNetworkConfigIWMReaderNetworkConfig2 인터페이스를 통해 사용할 수 있습니다.

네트워크 원본의 콘텐츠는 다음 두 가지 범주 중 하나로 분류됩니다.

  • 스트리밍. 데이터는 로컬 컴퓨터에서 재생될 시간에 전송됩니다. Windows Media Services를 실행하는 서버는 스트리밍 데이터를 제공할 수 있습니다. MBR(여러 비트 전송률) 콘텐츠가 스트리밍되는 경우 스트리밍이 진행됨에 따라 클라이언트가 서버와 다른 비트 속도를 요청할 수 있습니다.
  • 다운로드. 모든 데이터는 로컬 컴퓨터에 파일로 저장할 수 있도록 가능한 한 빨리 전송됩니다. 웹 서버는 다운로드한 데이터를 제공합니다. 다운로드가 시작된 후에는 클라이언트에서 서버로의 통신이 없습니다.

판독기 개체가 웹 서버에서 파일을 다운로드하는 경우 점진적 스트리밍이라는 기술을 사용하여 플레이어가 다운로드가 완료되기 전에 콘텐츠 렌더링을 시작할 수 있습니다. 데이터는 플레이어에게 중단 없는 데이터 흐름을 제공하기 위해 버퍼링됩니다. 콘텐츠 전송 속도 및 기간과 같은 정보는 플레이어에게 제공하기 전에 데이터를 버퍼링하는 기간을 결정하는 데 사용됩니다.

네트워크를 통해 파일을 열거나 스트림하려면 적절한 URL을 사용하여 판독기 개체의 IWMReader::Open 메서드를 호출합니다. 열기 는 비동기 호출이므로 즉시 반환됩니다. 원본을 읽을 준비가 되면 판독기 개체는 애플리케이션의 IWMStatusCallback::OnStatus 콜백 메서드에 WMT_OPENED 알림을 보냅니다. 이 시점에서 애플리케이션은 IWMReaderAdvanced2::GetPlayMode를 호출하여 판독기에서 배달 모드를 쿼리할 수 있습니다. 네트워크 콘텐츠의 경우 이 메서드는 다운로드한 콘텐츠를 나타내는 WMT_PLAY_MODE_DOWNLOAD 반환하거나 스트리밍된 콘텐츠를 나타내는 WMT_PLAY_MODE_STREAMING 반환합니다.

파일 또는 스트림 읽기를 시작하려면 IWMReader::Start 메서드를 호출합니다. 판독기는 콘텐츠를 버퍼링하기 시작할 때 WMT_BUFFERING_START 알림을 보내고 버퍼링이 완료되면 WMT_BUFFERING_STOP 알림을 보냅니다. 판독기가 콘텐츠를 버퍼링하는 동안(즉, 이러한 두 알림 사이에) 사용자에게 버퍼링 진행률을 표시할 수 있습니다. IWMReaderAdvanced2::GetBufferProgress 메서드는 버퍼링된 데이터의 백분율과 남은 예상 시간을 반환합니다. 다운로드한 콘텐츠의 경우 IWMReaderAdvanced2::GetDownloadProgress 를 호출하여 다운로드 진행률을 가져올 수도 있습니다. 버퍼링이 완료될 때까지 이러한 메서드를 반복적으로 호출하여 디스플레이를 업데이트합니다. 버퍼링은 네트워크 정체와 같은 요인으로 인해 재생 중에 다시 발생할 수 있습니다. 이 경우 애플리케이션은 또 다른 WMT_BUFFERING_START 알림을 받습니다.

판독기 개체가 콘텐츠를 재생하기 시작하면 WMT_STARTED 알림을 보냅니다. 각 샘플이 디코딩되고 렌더링에 사용할 수 있게 되면 판독기는 IWMReaderCallback::OnSample 콜백 메서드를 통해 애플리케이션에 전달합니다. 이 시점에서 프로세스는 로컬 파일 재생과 동일합니다. 재생이 중지되면 판독기는 WMT_END_OF_STREAMING 알림을 보냅니다.

ASF 파일 읽기