移除要處理大於 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 開頭的區段。

實作 CEcho::D oProcessOutput