Menemukan Kemampuan Format Perangkat
Aplikasi Anda mungkin mencoba menentukan kemampuan pemutaran perangkat sebelum mengirim file ke dalamnya. Jika perangkat tidak dapat menangani format file yang ingin Anda kirim, aplikasi Anda mungkin mencoba mentranskode file ke dalam format yang dapat digunakan perangkat, atau memberi tahu pengguna bahwa perangkat tidak dapat mendukung file yang diminta.
Perhatikan bahwa beberapa perangkat, seperti perangkat kelas penyimpanan massal, mungkin hanya berfungsi sebagai media penyimpanan yang dapat dilepas tanpa kemampuan pemutaran. Dalam hal ini, aplikasi Anda tidak pantas untuk melakukan transkode file sebelum mengirimkannya ke perangkat.
Meskipun metode IWMDMDevice::GetType memungkinkan perangkat melaporkan kemampuannya, beberapa perangkat mengembalikan nilai yang salah untuk metode ini. Sebelum menyalin file ke perangkat, Anda mungkin ingin bertanya kepada pengguna apakah pemutaran dimaksudkan, dan jika demikian, coba transkode file ke salah satu format yang dilaporkan perangkat (atau format yang wajar, jika perangkat mengklaim dukungan untuk format apa pun). Pendekatan lain adalah mengasumsikan bahwa format apa pun yang secara khusus terdaftar sebagaimana didukung oleh perangkat ditujukan untuk pemutaran, dan semua file lain harus ditransfer tanpa dimodifikasi.
Setelah menemukan format file yang akan ditransfer, dan format yang didukung oleh perangkat, Anda dapat memutuskan format target terbaik untuk transcoding.
Di masa lalu, adalah umum bagi aplikasi untuk mengembalikan nol properti untuk menunjukkan dukungan untuk nilai apa pun dari properti tersebut. Misalnya, nilai nol untuk _WAVEFORMATEX.nSamplesPerSec akan menunjukkan dukungan untuk laju bit apa pun. Sekarang, cara yang disarankan untuk menunjukkan dukungan untuk nilai apa pun adalah dengan menentukan WMDM_ENUM_PROP_VALID_VALUES_ANY dalam WMDM_PROP_DESC. ValidValuesForm. Namun, beberapa properti dapat secara sah mengembalikan nol untuk menunjukkan dukungan tertentu. Misalnya, jika _BITMAPINFOHEADER.biSizeImage diatur ke nol, ini menunjukkan bitmap BI_RGB. Pengecualian untuk nilai nol dicatat dalam dokumentasi untuk struktur yang relevan.
Namun, penting untuk dicatat bahwa perangkat sering kali tidak melaporkan kemampuan formatnya dengan benar, atau dengan cara standar. Misalnya, perangkat sering melaporkan bahwa perangkat mendukung format apa pun, padahal sebenarnya mereka hanya dapat menangani format tertentu, atau laju bit tertentu dalam jenis format. Terserah Anda untuk memutuskan apakah aplikasi Anda harus menerima laporan tersebut, atau apakah harus mengasumsikan semacam batas atas untuk kemampuan pemutaran perangkat (misalnya, 192 kbps).
Metode yang direkomendasikan untuk meminta dukungan format perangkat adalah IWMDMDevice3::GetFormatCapability. Jika metode ini tidak didukung, aplikasi Anda harus kembali ke IWMDMDevice::GetFormatSupport. GetFormatSupport, tidak seperti GetFormatSupport2, tidak mengembalikan informasi video.
Bagaimana aplikasi meminta kemampuan format perangkat bergantung pada antarmuka mana yang didukung aplikasi. Untuk detail selengkapnya, lihat topik berikut ini:
- Mendapatkan Kemampuan Format pada Perangkat yang Mendukung IWMDMDevice3
- Mendapatkan Kemampuan Format pada Perangkat yang Hanya Mendukung IWMDMDevice
Topik terkait