移除要處理大於 16 位的程式碼
[與此頁面相關聯的功能Windows 媒體播放機 SDK是舊版功能。 它已被 MediaPlayer 取代。 MediaPlayer已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用MediaPlayer,而不是Windows 媒體播放機 SDK。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
因為此範例只會處理 8 位或 16 位音訊,所以您需要修改 CEcho::ValidateMediaType 中的程式碼,以傳回大於 16 位之媒體類型的DMO_E_TYPE_NOT_ACCEPTED。 若要達成此目的,您必須變更 switch 區塊中的程式碼,以測試類型WAVE_FORMAT_EXTENSIBLE的格式。 以下列範例程式碼取代精靈程式碼:
case WAVE_FORMAT_EXTENSIBLE:
{
// Sample size is greater than 16-bit or is multichannel.
WAVEFORMATEXTENSIBLE *pWaveXT = (WAVEFORMATEXTENSIBLE *) pWave;
if (KSDATAFORMAT_SUBTYPE_PCM != pWaveXT->SubFormat)
{
return DMO_E_TYPE_NOT_ACCEPTED;
}
}
break;
接下來,刪除或批註處理高解析度音訊 之 DoProcessOutput 中的程式碼區段。 這些是以案例 24 和案例 32 開頭的區段。
相關主題
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應