XAudio2 Ses Efektleri
Ses efekti, gelen ses verilerini alan ve geçirmeden önce veriler üzerinde bazı işlemler gerçekleştiren bir nesnedir. Ses akışına reverb ekleme ve en yüksek ses düzeylerini izleme gibi çeşitli görevleri gerçekleştirmek için bir efekt kullanabilirsiniz.
Efekt Zincirleri
Herhangi bir XAudio2 sesi, bir ses efektleri zinciri barındırabilir. Efekt zincirlerini belirtmek için bir dizi XAUDIO2_EFFECT_DESCRIPTOR yapısı kullanabilirsiniz. Her tanımlayıcı, istemci tarafından sağlanan bir efekt nesnesinin işaretçisini içerir. Bu nesneler Ses İşleme Nesnesi (APO) arabirimlerini uygulamalıdır. APO modeli hakkında daha fazla bilgi için XAPO'ya Genel Bakış bakın.
Efekt zincirleri istemci tarafından dinamik olarak değiştirilebilir (XAudio2 altyapısı çalışırken), efektler ayrı ayrı etkinleştirilebilir veya devre dışı bırakılabilir ve efekt parametreleri ses kesintisi olmadan değiştirilebilir. Etki grafiğinin herhangi bir yönü değiştiğinde, XAudio2 gereksiz işlemeyi önlemek için grafı yeniden iyileştirir. Bkz. IXAudio2Voice::SetEffectChain, IXAudio2Voice::EnableEffectve IXAudio2Voice::SetEffectParameters.
XAudio2 sesine bir efekt eklendikten sonra, XAudio2 efektin denetimini alır ve istemci buna başka çağrı yapmamalıdır. Bunu sağlamanın en basit yolu, etkinin tüm işaretçilerini serbest bırakmaktır.
Belirli bir XAudio2 sesinin efekt zincirindeki efektler, bu sesin işleme örnek hızında kayan nokta sesi tüketmeli ve üretmelidir. Değiştirebilecekleri ses biçiminin tek yönü kanal sayısıdır (örneğin, yankı efekti mono verileri 5.1'e dönüştürebilir). İstemci XAUDIO2_EFFECT_DESCRIPTORkullanabilir. Her efektin üretmesi gereken kanal sayısını belirtmek için OutputChannelsalanını. Etkilerden herhangi biri bu gereksinimleri karşılayamazsa veya bir etki bir sonraki efektin işleyemeyeceği bir dizi kanal üretirse etki zinciri başarısız olur. Etki zincirinin bu gereksinimleri karşılamayı durdurmasına neden olan tüm IXAudio2Voice::EnableEffect veya IXAudio2Voice::D isableEffect çağrıları başarısız olur.
XAudio2'de kullanılan APO arabirimleri yıkıcı olmalıdır. Bu, her zaman çıkış arabelleklerinde buldukları verilerin üzerine yazdıkları anlamına gelir. Aksi takdirde, XAudio2 bu arabelleklerin daha önce sessizlikle başlatıldığını garanti etmediğinden, sonuçta elde edilen ses yanlış olabilir.
XAudio2 Yerleşik Efektler
Aşağıdaki tabloda, XAudio2 tarafından sağlanan yerleşik ses efektleri kümesi ve bunların oluşturma yöntemleri listelenir.
Etki | Oluşturma Yöntemi |
---|---|
Reverb | XAudio2CreateReverb |
Birim Ölçüm | XAudio2CreateVolumeMeter |
Ses efekti örneği oluşturma ve kullanma örneği için bkz. Nasıl yapılır: Efekt Zinciri Oluşturma.
XAudio2'de Özel Efektler
XAPO API', XAudio2'de kullanabileceğiniz özel ses efektleri oluşturmaya yönelik bir çerçeve sağlar. XAPO ile özel efekt oluşturma örneği için bkz. nasıl yapılır: XAPO oluşturma.
XAPO Efekt Kitaplığı (XAPOFX)
XAPOFX, XAPO'lardan oluşan ek bir kitaplık ve bunları oluşturmak için ortak mekanizma sağlar. XAudio2 ile XAPOFX kullanma örneği için bkz. Nasıl yapılır: XAudio2'de XAPOFX kullanma.
İlgili konular