Aracılığıyla paylaş


Akış Yönetimi

ses uç noktası cihazlarını sistemde numaralandırdıktan ve uygun bir işleme veya yakalama cihazı tanımladıktan sonra, ses istemci uygulaması için bir sonraki görev uç nokta cihazıyla bir bağlantı açmak ve bu bağlantı üzerinden ses verilerinin akışını yönetmektir. WASAPI , istemcilerin ses akışları oluşturmasını ve yönetmesini sağlar.

WASAPI, ses istemcilerine akış yönetimi hizmetleri sağlamak için çeşitli arabirimler uygular. Birincil arabirim IAudioClient. İstemci, uç nokta nesnesinde IMMDevice::Activate yöntemini (parametre iidREFIID IID_IAudioClient olarak ayarlanmış) çağırarak bir ses uç noktası cihazı için IAudioClient arabirimini alır.

İstemci, aşağıdakileri yapmak için IAudioClient arabirimindeki yöntemleri çağırır:

  • Uç nokta cihazının hangi ses biçimlerini desteklediğini keşfedin.
  • Uç nokta arabellek boyutunu alın.
  • Akış biçimini ve gecikme süresini alın.
  • Uç nokta cihazı üzerinden akan akışı başlatın, durdurun ve sıfırlayın.
  • Ek ses hizmetlerine erişin.

Bir akış oluşturmak için istemci, IAudioClient::Initialize yöntemini çağırır. Bu yöntem aracılığıyla, istemci akışın veri biçimini, uç nokta arabelleğinin boyutunu ve akışın paylaşılan veya özel kullanım modunda çalışıp çalışmadığını belirtir.

IAudioClient arabirimindeki kalan yöntemler iki gruba ayrılır:

  • Yalnızca akış IAudioClient::Initializetarafından açıldıktan sonra çağrılabilen yöntemler.
  • Initialize çağrısından önce veya sonra herhangi bir zamanda çağrılabilen yöntemler.

Aşağıdaki yöntemler yalnızca IAudioClient::Initializeçağrısından sonra çağrılabilir:

Aşağıdaki yöntemler, IAudioClient::Initialize çağrısından önce veya sonra çağrılabilir:

Ek ses istemci hizmetlerine erişmek için istemci, IAudioClient::GetService yöntemini çağırır. Bu yöntemle, istemci aşağıdaki arabirimlere başvurular alabilir:

Ayrıca, oturumla ilgili olayların bildirimini gerektiren WASAPI istemcileri aşağıdaki arabirimi uygulamalıdır:

Son olarak, bir istemci ses akışı oluşturmak için daha üst düzey bir API kullanabilir, ancak akışı içeren oturum için oturum denetimlerine ve birim denetimlerine de erişim gerektirebilir. Daha üst düzey bir API genellikle bu erişimi sağlamaz. İstemci, IAudioSessionManager arabirimi aracılığıyla belirli bir oturumun denetimlerini alabilir. Bu arabirim, istemcinin IAudioSessionControl ve ISimpleAudioVolume arabirimlerini, istemcinin bir akış oluşturmak ve akışı oturuma atamak için IAudioClient arabirimini kullanmasına gerek kalmadan almasını sağlar. İstemci, bir ses uç noktası cihazı için IAudioSessionManager arabirimini, uç nokta nesnesinde IMMDevice::Activate yöntemini (parametre iidREFIID IID_IAudioSessionManager olarak ayarlanmış olarak) çağırarak alır.

IAudioSessionControl, IAudioSessionEventsve IAudioSessionManager arabirimleri Audiopolicy.h üst bilgi dosyasında tanımlanır. Diğer tüm WASAPI arabirimleri Audioclient.h üst bilgi dosyasında tanımlanır.

Aşağıdaki bölümlerde ses akışlarını yönetmek için WASAPI'nin nasıl kullanılacağı açıklanmaktadır:

Programlama Kılavuzu