Aracılığıyla paylaş


XAudio2 Giriş

XAudio2, düşük düzeyli bir ses API'sidir. Öncülleri DirectSound ve XAudio'ya benzer oyunlar için bir sinyal işleme ve karıştırma temeli sağlar.

XAudio2, DirectSound'un uzun zamandır beklenen yerine geçer. Bazı bekleyen sorunları ve özellik isteklerini giderir.

XAudio2 Özellikleri

Aşağıda, geliştiricilerin oyunlarında performansı geliştirmesine olanak tanıyan XAudio2 özelliklerinin ve yeni işlevlerin listesi yer alır.

  • DSP Efektleri ve Ses Başına Filtreleme

    Dijital Sinyal İşleme (DSP) efektleri, sesin piksel gölgelendiricileridir. Bir domuz çığlığını kalın, korkunç bir canavar sesine dönüştürmekten, yankı ve engel veya tıkanıklık filtreleme kullanarak sesleri oyun ortamına yerleştirmeye kadar her şeyi hallederler. XAudio2 esnek ve güçlü bir DSP çerçevesi sağlar. Ayrıca, düşük/yüksek/bant geçişli filtreleme efektlerini verimli bir şekilde uygulamak için her seste yerleşik bir filtre sağlar.

    DSP efektleri ve ses başına filtreleme hakkında daha fazla bilgi için bkz. XAudio2 Ses Efektleri ve IXAudio2Voice::SetFilterParameters.

  • Alt Karıştırma

    Submixing, çeşitli sesleri tek bir ses akışında birleştirir; örneğin, hepsi aynı anda çalan bileşik parçalardan oluşan bir motor sesi. Ayrıca, bir oyunun benzer bölümlerini işlemek ve birleştirmek için alt karıştırmayı kullanabilirsiniz. Örneğin, tüm oyun ses efektlerini birleştirerek kullanıcıların ses düzeyi ayarını uygulamasına izin verebilirken, ayrı bir ayar müzik ses düzeyini kontrol edebilir. DSP ile birlikte alt karıştırma, günümüz oyunları için gerekli veri yönlendirme ve işleme türünü sağlar. XAudio2, karmaşık seslerin ve oyun karışımlarının oluşturulmasını sağlayan rastgele alt karıştırma düzeylerine olanak tanır.

    Alt karıştırma hakkında daha fazla bilgi için bkz. XAudio2 Ses Grafiği ve XAudio2 Voices.

  • Sıkıştırılmış Ses Desteği

    DirectSound için en önemli özellik isteklerinden biri sıkıştırılmış ses desteğiydi. XAudio2, çalışma zamanı sıkıştırması ile yerel olarak sıkıştırılmış biçimleri (ADPCM) destekler.

  • Gelişmiş Çok Kanallı ve Surround Ses Desteği

    Çok kanallı, 3B ve surround ses desteği genişletilmiştir. 3B ve surround ses artık çok daha esnek ve şeffaftır. XAudio2, çok kanallı seslerde 6 kanal sınırını kaldırır ve çok kanallı ses kartlarında çok kanallı sesi destekler. Kartın donanım hızlandırmalı olması gerekmez.

  • Çok Oranlı İşleme

    XAudio2, CPU kullanımını en aza indirmeye yardımcı olmak için birden çok, düşük hızda ses işleme grafiği oluşturma teknolojisi sağlar. Bu, bir oyunun ses hızının 48 kHz'in altında olması durumunda kaynak malzeme hızında ses işlemesine izin vererek CPU kullanımını önemli ölçüde azaltabilir.

  • Engellenmeyen API Modeli

    Birkaç istisna dışında, XAudio2 yöntem çağrısı ses işleme altyapısını engellemez. Bu, bir istemcinin, gecikmelere neden olan uzun süreli çağrıları engellemeden herhangi bir zamanda güvenle bir dizi yöntem çağrısı yapabileceği anlamına gelir. Özel durumlar, IXAudio2Voice::DestroyVoice yöntemidir (ses işleme bitene kadar motoru engelleyebilir) ve ses iş parçacığını sonlandıran yöntemler: IXAudio2::StopEngine ve IXAudio2::Release. XAudio2 yöntem çağrıları ses işleme altyapısını engellemese de, XAudio2 yöntemlerinin kritik bölümler içerdiğini ve bazı durumlarda engellenebileceğini unutmayın.

XAudio2 ne zaman kullanılır?

XAudio2 öncelikle oyunlar için yüksek performanslı ses motorları geliştirmeye yöneliktir. Modern oyunlarına ses efektleri ve arka plan müziği eklemek isteyen oyun geliştiricileri için XAudio2, düşük gecikme süresi ve dinamik arabellekler, zaman uyumlu örnek doğru kayıttan yürütme ve örtük kaynak hızı dönüştürme desteğine sahip bir ses grafiği ve karıştırma motoru sunar. WASAPI ile karşılaştırıldığında, XAudio2 karmaşık ses çözümleri için bile en az miktarda kod gerektirir. Media Foundation altyapısına kıyasla XAudio2, oyunlarda kullanılmak üzere tasarlanmış düşük düzey, düşük gecikme süreli bir C++ API'dir.

Sadece düzenli müzik çalma ihtiyacı olan uygulamalar için Media Foundation motoru, uygulamanın gereksinimlerine daha uygun olabilir.

Programlama Kılavuzu

Başlarken

XAudio2 Programlama Referansı