Membaca Audio Multisaluran
[Fitur yang terkait dengan halaman ini, Windows Media Format 11 SDK, adalah fitur warisan. Ini telah digantikan oleh Pembaca Sumber dan Penulis Sink. Pembaca Sumber dan Penulis Sink telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan Pembaca Sumber dan Penulis Sink alih-alih Windows Media Format 11 SDK, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]
Codec Windows Media Audio 9 Professional dapat mengodekan audio multisaluran (lebih dari dua saluran). Saat membaca file dengan audio multisaluran, Anda harus mengonfigurasi output dengan benar atau audio akan dikirimkan dengan kualitas yang lebih rendah dan dalam stereo. Untuk mengatur output untuk pengiriman audio multisaluran, Anda harus mengatur dua pengaturan output: g_wszEnableDiscreteOutput dan g_wszSpeakerConfig.
Mengatur g_wszEnableDiscreteOutput ke TRUE mengatur codec untuk memberikan output audio definisi tinggi. Audio definisi tinggi dikodekan oleh codec Windows Media Audio 9 dengan sampel 24-bit dalam stereo atau beberapa saluran. Jika pengaturan ini FALSE, hanya output stereo 16-bit yang akan dikirimkan.
Jumlah speaker pada komputer yang diputar diatur dengan g_wszSpeakerConfig. Pengaturan ini adalah nilai DWORD yang diatur ke salah satu konstanta pembicara DirectSound yang tercantum dalam tabel berikut. Untuk mengatasi nama konstanta ini untuk pengkompilasi Anda, Anda harus menyertakan dsound.h.
Terus-menerus | Nilai | Deskripsi |
---|---|---|
DSSPEAKER_DIRECTOUT | 0x00000000 | Audio diteruskan secara langsung, tanpa dikonfigurasi untuk speaker. |
DSSPEAKER_HEADPHONE | 0x00000001 | Komputer klien dilengkapi dengan headphone. |
DSSPEAKER_MONO | 0x00000002 | Komputer klien dilengkapi dengan speaker monaural. |
DSSPEAKER_QUAD | 0x00000003 | Komputer klien dilengkapi dengan speaker quadraphonic. |
DSSPEAKER_STEREO | 0x00000004 | Komputer klien dilengkapi dengan speaker stereo. |
DSSPEAKER_SURROUND | 0x00000005 | Komputer klien dilengkapi dengan speaker surround-sound empat saluran. |
DSSPEAKER_5POINT1 | 0x00000006 | Komputer klien dilengkapi dengan lima speaker dan subwoofer. |
DSSPEAKER_7POINT1 | 0x00000007 | Komputer klien dilengkapi dengan tujuh speaker dan subwoofer. |
Untuk mengatur pengaturan ini, gunakan IWMReaderAdvanced2::SetOutputSetting.
Akhirnya, agar saluran dapat dihasilkan secara diskrit, tanpa dilipat ke stereo, Anda harus mengatur jenis media yang benar pada output dengan mengikuti langkah-langkah berikut:
- Panggil IWMReader::GetOutputFormatCount untuk mendapatkan jumlah format yang didukung untuk output audio yang relevan. Indeks format output berbasis nol.
- Untuk setiap format yang didukung, panggil IWMReader::GetOutputFormat untuk mengambil antarmuka IWMOutputMediaProps pada objek properti media output.
- Panggil IWMMediaProps::GetMediaType untuk mengambil jenis media.
- Jika jenis media yang diambil adalah jenis multisaluran yang diinginkan, atur dengan memanggil IWMReader::SetOutputProps.
Setelah Anda menetapkan output diskrit dan konfigurasi speaker, format output yang dijumlahkan oleh pembaca harus menyertakan format multisaluran yang menggunakan struktur WAVEFORMATEXTENSIBLE . Jika Anda menghitung format output sebelum mengatur properti, hanya format dengan 1 atau 2 saluran dan maksimum 16 bit per saluran yang akan disertakan. Seperti format audio lainnya, Anda hanya boleh menggunakan format yang dijumlahkan oleh pembaca; jangan mengonfigurasi sendiri.
Catatan
Anda dapat menghasilkan audio multisaluran hanya jika aplikasi Anda berjalan di Microsoft Windows XP atau versi Microsoft Windows yang lebih baru.
Topik terkait