Menghapus Kode untuk Memproses Lebih Besar dari 16 Bit

[Fitur yang terkait dengan halaman ini, Pemutar Media Windows SDK, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer. MediaPlayer telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer alih-alih Pemutar Media Windows SDK, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Karena sampel ini hanya memproses audio 8-bit atau 16-bit, Anda perlu memodifikasi kode di CEcho::ValidateMediaType untuk mengembalikan DMO_E_TYPE_NOT_ACCEPTED untuk jenis media yang lebih besar dari 16 bit. Untuk mencapai hal ini, Anda harus mengubah kode di blok sakelar yang menguji format jenis WAVE_FORMAT_EXTENSIBLE. Ganti kode wizard dengan contoh kode berikut:

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;

Selanjutnya, hapus atau komentari bagian kode di DoProcessOutput yang menangani audio resolusi bit tinggi. Ini adalah bagian yang dimulai dengan kasus 24 dan kasus 32.

Menerapkan CEcho::D oProcessOutput