Bagikan melalui


Mengkueri untuk Mencari Kemampuan

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Pengambilan Audio/Video di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Microsoft® DirectShow® mendukung pencarian melalui antarmuka IMediaSeeking . Filter Graph Manager mengekspos antarmuka ini, tetapi fungsionalitas pencarian selalu diimplementasikan oleh filter dalam grafik.

Beberapa data tidak dapat dicari. Misalnya, Anda tidak dapat mencari streaming video langsung dari kamera. Namun, jika aliran dapat dicari, ada berbagai jenis pencarian yang mungkin didukungnya. Ini termasuk:

  • Mencari ke posisi arbitrer di aliran.
  • Mengambil durasi aliran.
  • Mengambil posisi saat ini dalam aliran.
  • Bermain secara terbalik.

Antarmuka IMediaSeeking mendefinisikan sekumpulan bendera, AM_SEEKING_SEEKING_CAPABILITIES, yang menjelaskan kemungkinan kemampuan pencarian. Untuk mengambil kemampuan aliran, panggil metode IMediaSeeking::GetCapabilities. Metode mengembalikan kombinasi bendera bitwise. Aplikasi dapat mengujinya menggunakan operator & (bitwise AND). Misalnya, kode berikut memeriksa apakah grafik dapat mencari ke posisi arbitrer:

DWORD dwCap = 0;
HRESULT hr = pSeek->GetCapabilities(&dwCap);
if (AM_SEEKING_CanSeekAbsolute & dwCap)
{
    // Graph can seek to absolute positions.
}