共用方式為


探索裝置格式功能

您的應用程式可能會在傳送檔案給裝置之前嘗試判斷裝置的播放功能。 如果裝置無法處理您想要傳送的檔案格式,您的應用程式可能會嘗試將檔案轉碼成裝置可以使用的格式,或通知使用者裝置不支援要求的檔案。

請注意,某些裝置,例如大量儲存類別裝置,可能只能做為卸載式儲存媒體,而不需要播放功能。 在此情況下,您的應用程式在將檔案傳送至裝置之前,會不適當地轉碼檔案。

雖然 IWMDMDevice::GetType 方法可讓裝置報告其功能,但某些裝置會傳回此方法不正確的值。 將檔案複製到裝置之前,您可能會想要詢問使用者是否要播放,如果是,請嘗試將檔案轉碼為其中一個裝置的回報格式 (或合理的格式,如果裝置宣告支援任何格式) 。 另一種方法是假設裝置所支援的任何特別列出的格式都是用於播放,所有其他檔案都應該傳輸為未修改。

探索要傳輸的檔案格式,以及裝置所支援的格式之後,您可以決定哪一種是轉碼的最佳目標格式。

在過去,應用程式通常會針對屬性傳回零,以指出支援該屬性的任何值。 例如,_WAVEFORMATEX.nSamplesPerSec 的值為零,表示支援任何位元速率。 現在,指出支援任何值的建議方式是在 WMDM_PROP_DESC 中指定 WMDM_ENUM_PROP_VALID_VALUES_ANY。ValidValuesForm。 不過,某些屬性可以合法傳回零,以指出特定支援。 例如,如果 _BITMAPINFOHEADER.biSizeImage 設定為零,這表示BI_RGB點陣圖。 相關結構的檔中會說明零值的例外狀況。

不過,請務必注意,裝置通常不會正確報告其格式功能,或以標準方式回報。 例如,當裝置實際上只能處理特定格式或格式類型內的特定位元速率時,裝置通常會回報其支援任何格式。 您必須決定您的應用程式是否應該接受這類報告,還是應該假設裝置的播放 (能力有某種上限,例如 192 kbps) 。

要求裝置格式支援的建議方法是 IWMDMDevice3::GetFormatCapability。 如果不支援此方法,您的應用程式應該回到 IWMDMDevice::GetFormatSupportGetFormatSupport不同于 GetFormatSupport2,不會傳回視訊資訊。

應用程式要求裝置格式功能的方式取決於應用程式支援的介面。 如需詳細資料,請參閱下列主題:

將檔案寫入裝置