Akış Yönlendirme
Stream yönlendirme, bir medya uygulamasının kayıttan yürütme veya yakalama oturumunda en az kesintiyle farklı cihazlar arasında stream'ler arasında geçiş yapabilme özelliğidir.
Bir bilgisayarda birden çok işleme ve yakalama cihazı olabilir. Sistem bu cihazları Sesler denetim masasında listeler. Bu listeden, kullanıcı bir cihazı her rol için varsayılan cihaz olarak ayarlayabilir: ses yürütme, kayıt veya dört iletişim rolü (konsol işleme, konsol yakalama, iletişim işleme veya iletişim yakalama). Bu cihazlardan bazıları geçici olarak kullanılabildiği için cihaz listesi dinamik olarak değiştirilebilir, örneğin bir USB kulaklık. Birden çok cihaz kullanılabilir olduğunda, kullanıcı varsayılanı farklı bir cihaz olarak değiştirebilir. Kullanıcı ayrıca cihaz özelliklerinin Gelişmiş sekmesindeki bir cihazın biçimini (örnek hızı, örnek başına bit vb.) değiştirebilir.
Kullanıcının ses akışlarını işlemek için varsayılan cihaz olarak Hoparlörler seçtiği bir senaryo düşünün. Kullanıcı daha sonra bir USB mikrofonlu kulaklığı bağlar, yeni varsayılan cihaz olarak mikrofonlu kulaklığı seçer ve cihazın örnek hızını 44,1 kHz'den 48 kHz'e değiştirir. Kullanıcı, akış oturumunda en az kesintiyle kulaklıktaki ses akışını yeni örnek hızında oynatmak istiyor.
Bu senaryoda, medya uygulamasının işlemesi gereken iki durum vardır:
- Akışın, çalmada en az kesintiyle yeni varsayılan cihaza aktarılması gerekir.
- Yeni cihazın oynatma işlemine yeni formatta devam etmesi gerekir (yani, kullanıcı örnekleme hızından daha fazlasını değiştirebilir).
Windows Vista'da bu senaryoyu desteklemek için medya uygulamasının akış yönlendirme için uygulamayı sağlaması gerekiyordu. Uygulama, mevcut akışları sonlandırmaktan ve yeni cihazdaki akışları yeniden başlatmakla sorumluydu. Kullanıcı varsayılan cihazı veya karışım biçimini değiştirdiyse, ilişkili tüm oturumlar kapatıldı ve uygulamanın kurtarmayı yönetmesi gerekti.
Windows 7'de bir uygulama, mevcut bir varsayılan cihazdan yeni bir varsayılan ses uç noktasına sorunsuz bir şekilde akış aktarabilir. Media Foundation, DirectSound ve WAVE API'leri gibi üst düzey ses API'leri akış yönlendirme özelliğini uygular. Varsayılan cihazdan bir akışı yürütmek veya yakalamak için bu API kümelerini kullanan medya uygulamaları varsayılan uygulamayı kullanır ve uygulamayı değiştirmek zorunda değildir. Ancak, medya uygulamanız doğrudan MMDeviceAPI veya WASAPI kullanıyorsa, uygulamanın akış yönlendirme uygulamasını sağlaması gerekir.
Not
MMDeviceAPI ve WASAPI, bir uygulamanın bir cihazdaki akışı işlemek veya yakalamak için kullanabileceği Çekirdek Ses API'si bileşenleridir. MMDeviceAPI yeni ses uç noktası cihazını bulur ve WASAPI, bir medya uygulaması ile ses uç noktası cihazı arasındaki ses verilerinin akışını yönetir.
Akış yönlendirme özelliğini uygulamak için uygulamanın aşağıdaki durumlarda MMDeviceAPI ve WASAPI tarafından gönderilen bildirimleri dinlemesi gerekir:
- Varsayılan cihaz kullanıcı tarafından değiştirilir.
- Mevcut varsayılan cihaz kaldırılır ve yeni bir varsayılan cihaz eklenir.
- Cihaz biçimi değiştirilir.
Bir uygulama bu bildirimleri işleyerek, akışı yeni varsayılan cihaza aktarırken gerekli akış yönetimi işlemlerini gerçekleştirebilir. Ayrıca uygulama, bir işleme oturumu etkinken kullanıcı tarafından belirtilen yeni biçimi kullanarak mevcut akışları işleyebilir veya yakalayabilir.
Bu bölüm aşağıdaki konuları içerir:
- Akış Yönlendirme için Cihaz Uç Noktasını Alma
- Akış Yönlendirme için İlgili Bildirimler
- Akış Yönlendirme Uygulamasıyla İlgili Önemli Noktalar
Windows SDK'sında yer alan aşağıdaki örnekler, bir uygulamanın akış yönlendirme bildirimlerini nasıl işleyebileceğini gösterir.
- Paylaşılan Zamanlayıcı Tarafından Yönlendirilen Render
- RenderSharedEventDriven
- RenderExclusiveTimerDriven
- RenderExclusiveEventDriven
- CaptureSharedTimerDriven
- CapturePaylaşımlıOlayTabanlı
İlgili konular