Aracılığıyla paylaş


CaptureSharedEventDriven

Bu örnek uygulama, kullanıcı tarafından belirtilen bir giriş cihazından ses verilerini yakalamak için Çekirdek Ses API'lerini kullanır ve geçerli dizindeki benzersiz bir adlandırılmış .wav dosyasına yazar. Bu örnekte olay temelli arabelleğe alma gösterilmektedir.

Bu konu aşağıdaki bölümleri içerir.

Açıklama

Bu örnekte aşağıdaki özellikler gösterilmektedir.

  • multimedya cihaz numaralandırması ve seçimi için MMDevice API .
  • Akışı başlatma ve durdurma ve akış değiştirme gibi akış yönetimi işlemleri için WASAPI .

Gereksinim -leri

Ürün Sürüm
Windows SDK Windows 7
Visual Studio 2008

 

Örneği İndirme

Bu örnek aşağıdaki konumlarda kullanılabilir.

Yer Yol/URL
Windows SDK \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\CaptureSharedEventDriven\...

 

Örneği Oluşturma

CaptureSharedEventDriven örneğini oluşturmak için aşağıdaki adımları kullanın:

  1. Windows SDK için CMD kabuğunu açın ve CaptureSharedEventDriven örnek dizinine geçin.
  2. WasAPICaptureSharedEventDriven projesini Visual Studio penceresinde açmak için CaptureSharedEventDriven dizininde start WASAPICaptureSharedEventDriven.sln komutunu çalıştırın.
  3. Pencerenin içinden Hata Ayıklama veya Sürüm çözümü yapılandırmasını seçin, menü çubuğundan Derleme menüsünü seçin ve Derleme seçeneğini belirleyin. VISUAL Studio'yu SDK için CMD kabuğundan açmazsanız, Visual Studio'nın SDK derleme ortamına erişimi olmaz. Bu durumda, wasAPICaptureSharedEventDriven.vcproj proje dosyasında kullanılan MSSdk ortam değişkenini açıkça ayarlamadığınız sürece örnek derlenmez.

Örneği Çalıştırma

Tanıtım uygulamasını başarıyla oluşturursanız, WASAPICaptureSharedEventDriven.exeyürütülebilir bir dosya oluşturulur. Çalıştırmak için, komut penceresine WASAPICaptureSharedEventDriven yazın ve ardından gerekli veya isteğe bağlı bağımsız değişkenler yazın. Aşağıdaki örnek, varsayılan multimedya cihazında yakalama süresini belirterek örneğin nasıl çalıştırılacağını gösterir.

WASAPICaptureSharedEventDriven.exe -d 20 -multimedia

Aşağıdaki tabloda bağımsız değişkenler gösterilmektedir.

Tartışma Açıklama
-? Yardım gösterir.
-h Yardım gösterir.
-l Milisaniye cinsinden ses yakalama gecikmesi.
-d Saniye cinsinden ses yakalama süresi.
-m MMCSS kullanımını devre dışı bırakır.
-konsol Varsayılan konsol cihazını kullanın.
-Iletişim Varsayılan iletişim cihazını kullanın.
-multimedya Varsayılan multimedya cihazını kullanın.
-bitiş noktası Anahtar değerinde belirtilen uç nokta tanımlayıcısını kullanın.

 

Uygulama bağımsız değişken olmadan çalıştırılırsa, kullanılabilir cihazları numaralandırır ve kullanıcıdan yakalama oturumu için bir cihaz seçmesini ister. Varsayılan konsol, iletişim ve multimedya cihazlarının ardından cihazlar ve uç nokta tanımlayıcıları listelenir. Süre belirtilmezse, belirtilen cihazdan ses akışı 10 saniye boyunca yakalanır. Uygulama, yakalanan verileri benzersiz olarak adlandırılmış bir .wav dosyasına yazar.

CaptureSharedEventDriven, olay temelli arabelleğe alma işlemini gösterir. Bu örnek için örneklenen ses istemcisi paylaşılan modda çalışacak şekilde yapılandırılır ve istemcinin ses arabelleği işlemesi, IAudioClient::Initializeçağrısında AUDCLNT_STREAMFLAGS_EVENTCALLBACK bayrağı ayarlanarak olay temelli yapılır. Örnek, istemcinin IAudioClient::SetEventHandle yöntemini çağırarak sisteme bir olay tanıtıcısı sağlaması gerektiğini gösterir. Yakalama oturumu başladıktan ve akış başladıktan sonra ses altyapısı, istemcinin işlemesi için her arabellek hazır olduğunda istemciyi bilgilendirmek için sağlanan olay tanıtıcısına sinyal gönderir. Ses verileri zamanlayıcı temelli bir döngüde de işlenebilir. Bu mod, CaptureSharedTimerDriven örneğinde gösterilir.

Temel Ses API'lerini kullanan SDK Örnekleri