16 ビットを超える処理を行うコードの削除

[このページWindows メディア プレーヤー SDK に関連付けられている機能は、レガシ機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 可能な場合は、新しいコードで SDK ではなく MediaPlayerWindows メディア プレーヤー使用することを強くお勧めします。 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 の実装