Perekaman Loopback

Dalam mode loopback, klien WASAPI dapat mengambil aliran audio yang sedang diputar oleh perangkat titik akhir penyajian. Untuk membuka aliran dalam mode loopback, klien harus:

  • Dapatkan antarmuka IMMDevice untuk perangkat titik akhir penyajian.
  • Menginisialisasi aliran pengambilan dalam mode loopback pada perangkat titik akhir penyajian.

Setelah mengikuti langkah-langkah ini, klien dapat memanggil metode IAudioClient::GetService untuk mendapatkan antarmuka IAudioCaptureClient pada perangkat titik akhir penyajian.

WASAPI menyediakan mode loopback terutama untuk mendukung pembatalan gema akustik (AEC). Namun, jenis aplikasi audio lainnya mungkin menemukan mode loopback yang berguna untuk menangkap campuran sistem yang sedang dimainkan oleh mesin audio.

Dalam contoh kode dalam Menangkap Stream, fungsi RecordAudioStream dapat dengan mudah dimodifikasi untuk mengonfigurasi aliran pengambilan mode loopback. Modifikasi yang diperlukan adalah:

Dalam versi Windows sebelum Windows 10 1703, klien penangkapan mode tarik tidak menerima peristiwa apa pun ketika aliran diinisialisasi dengan buffering berbasis peristiwa dan diaktifkan loopback. Untuk mengatasi hal ini, inisialisasi aliran render dalam mode berbasis peristiwa. Setiap kali klien menerima peristiwa untuk aliran render, klien penangkapan harus memberi sinyal untuk menjalankan utas tangkapan yang membaca serangkaian sampel berikutnya dari buffer titik akhir tangkapan. Di Windows 10 versi 1703 dan yang lebih tinggi, klien loopback berbasis peristiwa didukung, dan tidak lagi memerlukan solusi yang melibatkan aliran render.

Klien dapat mengaktifkan mode loopback hanya untuk aliran mode bersama (AUDCLNT_SHAREMODE_SHARED). Aliran mode eksklusif tidak dapat beroperasi dalam mode loopback.

Implementasi loopback oleh WASAPI bergantung pada kemampuan perangkat keras. Jika perangkat keras mendukung pin loopback pada titik akhir render, WASAPI menggunakan audio yang disediakan pada pin ini untuk aliran loopback. Ketika perangkat keras tidak mendukung pin loopback, WASAPI menyalin aliran output dari mesin audio ke buffer pengambilan aplikasi loopback, selain menyalin data audio ke pin render perangkat keras.

Beberapa vendor perangkat keras menerapkan perangkat loopback (dibandingkan dengan menyematkan instans pada perangkat render) di adaptor audio mereka. Meskipun perangkat loopback perangkat keras mirip dalam operasi dengan mode loopback WASAPI, perangkat tersebut bisa lebih sulit digunakan.

Perangkat loopback perangkat keras memiliki kerugian berikut untuk aplikasi audio:

  • Tidak semua adaptor audio memiliki perangkat loopback. Dengan demikian, aplikasi yang bergantung pada aplikasi tersebut tidak akan berfungsi pada semua sistem.
  • Sebelum aplikasi dapat merekam dari perangkat loopback, pengguna harus mengidentifikasi perangkat loopback dan mengaktifkannya untuk digunakan.

Vendor yang berbeda menetapkan nama yang berbeda ke perangkat loopback perangkat keras mereka. Nama berikut adalah contoh:

  • Campuran Stereo
  • Campuran Gelombang
  • Output Campuran
  • Apa yang Anda Dengar

Kurangnya nama standar dapat menyebabkan pengguna kesulitan mengidentifikasi perangkat loopback dalam daftar nama perangkat.

Perangkat loopback perangkat keras adalah perangkat tangkapan. Dengan demikian, jika adaptor mendukung perangkat loopback, aplikasi audio dapat merekam dari perangkat dengan cara yang sama seperti merekam dari perangkat tangkapan lainnya.

Misalnya, jika Anda memilih perangkat loopback perangkat keras untuk menjadi perangkat pengambilan default, Anda dapat menggunakan fungsi RecordAudioStream (tanpa modifikasi) dalam contoh kode dalam Menangkap Stream untuk mengambil aliran dari perangkat. (Anda juga dapat menggunakan API audio warisan, seperti fungsi Windows multimedia waveInXxx , untuk mengambil aliran dari perangkat.)

Jika adaptor audio Anda berisi perangkat loopback perangkat keras, Anda dapat menggunakan panel kontrol multimedia Windows, Mmsys.cpl, untuk menunjuk perangkat sebagai perangkat pengambilan default. Langkah langkahnya adalah sebagai berikut:

  1. Untuk menjalankan Mmsys.cpl, buka jendela Prompt Perintah dan masukkan perintah berikut:

    control mmsys.cpl
    

    Atau, Anda dapat menjalankan Mmsys.cpl dengan mengklik kanan ikon speaker di area pemberitahuan, yang terletak di sisi kanan taskbar, dan memilih Perangkat Perekaman.

  2. Setelah jendela Mmsys.cpl terbuka, klik kanan di mana saja dalam daftar perangkat perekaman dan verifikasi bahwa opsi Perlihatkan Perangkat yang Dinonaktifkan dicentang. (Jika tidak, jika perangkat loopback dinonaktifkan, perangkat tersebut tidak akan muncul dalam daftar.)

  3. Telusuri daftar perangkat perekaman untuk menemukan perangkat loopback (jika ada). Jika perangkat loopback dinonaktifkan, aktifkan dengan mengklik kanan perangkat dan mengklik Aktifkan.

  4. Terakhir, untuk memilih perangkat loopback menjadi perangkat pengambilan default, klik kanan perangkat dan klik Atur sebagai Perangkat Default.

WASAPI mendukung perekaman loopback terlepas dari apakah perangkat keras audio berisi perangkat loopback, atau apakah pengguna telah mengaktifkan perangkat.

Windows Vista menyediakan manajemen hak digital (DRM). Penyedia konten mengandalkan DRM untuk melindungi musik milik mereka atau konten lain dari penyalinan yang tidak sah dan penggunaan ilegal lainnya. Demikian pula, driver audio tepercaya tidak mengizinkan perangkat loopback untuk menangkap aliran digital yang berisi konten yang dilindungi. Windows Vista hanya memperbolehkan pengandar tepercaya untuk memainkan isi terproteksi. Untuk informasi selengkapnya tentang driver tepercaya dan DRM, lihat dokumentasi Windows DDK.

Loopback WASAPI berisi campuran semua audio yang diputar, terlepas dari sesi Layanan Terminal tempat audio berasal. Misalnya, Anda dapat menjalankan klien loopback dalam layanan yang berjalan di sesi 0 dan mengambil audio dari semua sesi pengguna, serta audio yang diputar dari sesi 0.

Desktop Jauh memungkinkan pengalihan audio ke klien. Ini diimplementasikan dengan membuat perangkat audio baru yang hanya muncul untuk sesi tersebut.

Manajemen Aliran