다음을 통해 공유


Media Detector 사용

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

[이 API는 지원되지 않으며 나중에 변경되거나 사용할 수 없습니다.]

미디어 탐지기는 스트림 수, 해당 형식 및 기간과 같은 파일에 대한 정보를 검색할 수 있는 도우미 개체입니다. 또한 비디오 스트림에서 포스터 프레임을 검색하는 메서드도 포함되어 있습니다. IMediaDet 인터페이스를 노출합니다.

미디어 감지기는 두 가지 모드 중 하나로 작동합니다. 미디어 탐지기의 instance 만들 때 특정 소스 파일에 연결되지 않습니다. 이 모드에서는 여러 원본 파일에서 스트림 정보를 검색할 수 있습니다. 그러나 미디어 감지기를 사용하여 포스터 프레임을 가져오면 비트맵 잡기 모드로 전환됩니다. 비트맵 잡기 모드에서는 미디어 감지기가 특정 비디오 스트림에 연결되고 스트림 정보 메서드가 더 이상 작동하지 않습니다. 또한 미디어 탐지기를 다시 시작 모드로 전환할 수 있는 방법은 없습니다. 따라서 포스터 프레임을 검색하기 전에 필요한 스트림 정보를 가져오거나 각 스트림에 대한 미디어 탐지기의 새 인스턴스를 만듭니다.

스트림 정보를 가져오려면 다음을 수행합니다.

  1. 원본 파일의 이름으로 IMediaDet::p ut_Filename 을 호출합니다.
  2. IMediaDet::get_OutputStreams 호출하여 원본의 스트림 수를 가져옵니다.
  3. IMediaDet::p ut_CurrentStream을 사용하여 스트림 번호를 지정합니다. 그런 다음, 다음 방법 중 하나 이상을 호출합니다.

포스터 프레임을 가져오려면 이전 단계와 같이 스트림 번호를 지정합니다. 그런 다음 포스터 프레임을 버퍼에 복사하는 IMediaDet::GetBitmapBits 또는 포스터 프레임을 파일에 저장하는 IMediaDet::WriteBitmapBits를 호출합니다.

원본 작업