Bagikan melalui


Mengatur Properti Pengambilan Audio

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Setiap pin input pada Filter Tangkapan Audio mengekspos antarmuka IAMAudioInputMixer . Gunakan antarmuka ini untuk mengaktifkan atau menonaktifkan input tertentu, dengan memanggil metode IAMAudioInputMixer::p ut_Enable pada pin. Gunakan juga antarmuka ini untuk mengatur properti input, seperti tingkat bass, treble, dan volume. Jika Anda menangkap beberapa input sekaligus, Anda dapat mengontrol tingkat bass, treble, dan volume secara keseluruhan melalui antarmuka IAMAudioInputMixer pada filter itu sendiri.

Laju pengambilan sampel dan format audio yang tersedia untuk pengambilan ditentukan oleh driver. Gunakan antarmuka IAMStreamConfig pada pin output Audio Capture Filter untuk menghitung laju dan format pengambilan sampel yang tersedia dan mengatur format yang diinginkan. Filter dapat tersambung ke hilir ke filter apa pun yang menerima jenis media pin output.

Filter Tangkapan Audio juga mengekspos antarmuka IAMBufferNegotiation . Antarmuka ini berguna untuk mengontrol jumlah latensi dalam pratinjau audio. Secara default, filter Audio Capture menggunakan ukuran buffer setengah detik. Ukuran buffer ini optimal untuk menangkap tetapi menyebabkan penundaan pratinjau setengah detik. Untuk mengurangi latensi, panggil metode IAMBufferNegotiation::SuggestAllocatorProperties sebelum Anda menyambungkan pin output Audio Capture Filter. Metode ini mengambil penunjuk ke struktur ALLOCATOR_PROPERTIES . Gunakan anggota cbBuffer untuk menentukan ukuran buffer, dalam byte. Buffer 80 milidetik umumnya aman, tetapi buffer 30 atau 40 milidetik mungkin cukup. Jika buffer terlalu kecil, kualitas suara akan terdegradasi.