Aracılığıyla paylaş


Geri Döngü Kaydı

Geri döngü modunda, WASAPI istemcisi bir işleme uç noktası cihazı tarafından oynatılan ses akışını yakalayabilir. Akışı geri döngü modunda açmak için istemcinin şunları yapması gerekir:

  • İşleme uç noktası cihazı için bir IMMDevice arabirimi alın.
  • İşleme uç noktası cihazında geri döngü modunda bir yakalama akışı başlatın.

Bu adımları takip ettikten sonra istemci, işleme uç noktası cihazında bir IAudioCaptureClient arabirimi elde etmek için IAudioClient::GetService yöntemini çağırabilir.

WASAPI öncelikle akustik yankı iptali (AEC) desteği için geri döngü modu sağlar. Ancak, diğer ses uygulaması türleri, ses altyapısı tarafından oynatılan sistem karışımını yakalamak için kullanışlı bir geri döngü modu bulabilir.

Akış yakalamaiçindeki kod örneğinde RecordAudioStream işlevi, geri döngü modu yakalama akışını yapılandırmak için kolayca değiştirilebilir. Gerekli değişiklikler şunlardır:

Windows'un Windows 10 1703'ten önceki sürümlerinde, bir akış olay temelli arabelleğe alma ile başlatıldığında ve geri döngü etkin olduğunda çekme modu yakalama istemcisi hiçbir olay almaz. Bu sorunu geçici olarak çözmek için olay temelli modda bir işleme akışı başlatın. İstemci işleme akışı için her olay aldığında, yakalama uç noktası arabelleğinden sonraki örnek kümesini okuyan yakalama iş parçacığını çalıştırması için yakalama istemcisine sinyal vermesi gerekir. Windows 10 sürüm 1703 ve üzeri sürümlerde olay temelli geri döngü istemcileri desteklenir ve artık işleme akışıyla ilgili geçici çözüme gerek yoktur.

İstemci, geri döngü modunu yalnızca paylaşılan mod akışı (AUDCLNT_SHAREMODE_SHARED) için etkinleştirebilir. Özel kullanım modu akışları geri döngü modunda çalışamaz.

WASAPI tarafından geri döngü uygulanması, donanımın özelliklerine bağlıdır. Donanım işleme uç noktasında bir geri döngü pin'ini destekliyorsa WASAPI, geri döngü akışı için bu pinte sağlanan sesi kullanır. Donanım bir geri döngü pin'ini desteklemediğinde WASAPI, ses verilerini donanımın işleme pin'ine kopyalamanın yanı sıra ses altyapısından çıkış akışını geri döngü uygulamasının yakalama arabelleğine kopyalar.

Bazı donanım satıcıları, ses bağdaştırıcılarında geri döngü cihazları (işleme cihazlarında örnekleri sabitlemenin aksine) uygular. Donanım geri döngü cihazları WASAPI geri döngü moduna benzer olsa da, bunların kullanılması daha zor olabilir.

Donanım geri döngü cihazları, ses uygulamaları için aşağıdaki dezavantajlara sahiptir:

  • Tüm ses bağdaştırıcılarında geri döngü cihazları yoktur. Bu nedenle, bunlara bağımlı uygulamalar tüm sistemlerde çalışmaz.
  • Bir uygulamanın geri döngü cihazından kayıt yapabilmesi için önce kullanıcının geri döngü cihazını tanımlaması ve kullanmak üzere etkinleştirmesi gerekir.

Farklı satıcılar donanım geri döngü cihazlarına farklı adlar atar. Aşağıdaki adlar örnektir:

  • Stereo Mix
  • DalgaLı Karışım
  • Karma Çıkış
  • Duyduklarınız

Standart adların olmaması, kullanıcıların cihaz adları listesinde bir geri döngü cihazını tanımlamakta zorlanmalarına neden olabilir.

Donanım geri döngü cihazı bir yakalama cihazıdır. Bu nedenle, bir bağdaştırıcı geri döngü cihazını destekliyorsa, ses uygulaması cihazdan başka herhangi bir yakalama cihazından kayıt yaptığı şekilde kayıt yapabilir.

Örneğin, varsayılan yakalama cihazı olarak bir donanım geri döngü cihazı seçerseniz, akışı cihazdan yakalamak için akış yakalama 'daki kod örneğinde RecordAudioStream işlevini (değişiklik olmadan) kullanabilirsiniz. (Akışı cihazdan yakalamak için Windows multimedya waveInXxx işlevleri gibi eski bir ses API'sini de kullanabilirsiniz.)

Ses bağdaştırıcınız bir donanım geri döngü cihazı içeriyorsa, cihazı varsayılan yakalama cihazı olarak ayarlamak için Mmsys.cplWindows multimedya denetim masası'nı kullanabilirsiniz. Adımlar aşağıdaki gibidir:

  1. Mmsys.cplçalıştırmak için bir Komut İstemi penceresi açın ve aşağıdaki komutu girin:

    control mmsys.cpl
    

    Alternatif olarak, görev çubuğunun sağ tarafında bulunan bildirim alanında hoparlör simgesine sağ tıklayıp Kayıt Cihazları'nıseçerek Mmsys.cpl çalıştırabilirsiniz.

  2. Mmsys.cpl penceresi açıldıktan sonra, kayıt cihazları listesinde herhangi bir yere sağ tıklayın ve Devre Dışı Cihazları Göster seçeneğinin işaretli doğrulayın. (Aksi takdirde, geri döngü cihazı devre dışı bırakılırsa listede görünmez.)

  3. Geri döngü cihazını (varsa) bulmak için kayıt cihazları listesine göz atın. Geri döngü cihazı devre dışı bırakılırsa, cihaza sağ tıklayıp Etkinleştir'e tıklayaraketkinleştirin.

  4. Son olarak, geri döngü cihazını varsayılan yakalama cihazı olarak seçmek için cihaza sağ tıklayın ve Varsayılan Cihaz Olarak Ayarlaöğesine tıklayın.

WASAPI, ses donanımının bir geri döngü cihazı içermesine veya kullanıcının cihazı etkinleştirip etkinleştirmediğine bakılmaksızın geri döngü kaydını destekler.

Windows Vista dijital hak yönetimi (DRM) sağlar. İçerik sağlayıcıları, özel müziklerini veya diğer içerikleri yetkisiz kopyalama ve diğer yasa dışı kullanımlardan korumak için DRM'ye güvenir. Benzer şekilde, güvenilir bir ses sürücüsü bir geri döngü cihazının korumalı içerik içeren dijital akışları yakalamasına izin vermez. Windows Vista yalnızca güvenilen sürücülerin korumalı içeriği yürütmesine izin verir. Güvenilen sürücüler ve DRM hakkında daha fazla bilgi için Windows DDK belgelerine bakın.

WASAPI geri döngü varsayılan olarak, sesin kaynaklandığı Terminal Hizmetleri oturumundan bağımsız olarak yürütülmekte olan tüm seslerin karışımını içerir. Örneğin, 0. oturumda çalışan bir hizmette bir geri döngü istemcisi çalıştırabilir ve tüm kullanıcı oturumlarından ve 0. oturumdan çalınan sesleri yakalayabilirsiniz.

Windows 10 Derleme 20348'den başlayarak, IMMDevice::Activate çağrısına bir AUDIOCLIENT_ACTIVATION_PARAMS geçirerek belirli işlemleri ve alt öğeleri geri döngü yakalamaya dahil edebilir veya hariç tutabilirsiniz. Uygulama geri döngü ses yakalama örneğibakın.

Uzak Masaüstü, sesin istemciye yeniden yönlendirilmesine izin verir. Bu, yalnızca bu oturum için görünen yeni ses cihazları oluşturularak uygulanır.

akış yönetimi