Bagikan melalui


Metode IXAudio2Voice::SetOutputMatrix (xaudio2.h)

Mengatur tingkat volume setiap saluran output akhir untuk suara. Saluran ini dipetakan ke saluran input dari suara tujuan tertentu.

Sintaks

\\HRESULT SetOutputMatrix(
  [in] IXAudio2Voice *pDestinationVoice,
  [in] UINT32        SourceChannels,
  [in] UINT32        DestinationChannels,
  [in] const float   *pLevelMatrix,
  [in] UINT32        OperationSet
);

Parameter

[in] pDestinationVoice

Arahkan ke IXAudio2Voice tujuan untuk mengatur tingkat volume.

Catatan Jika suara dikirim ke satu suara target, maka menentukan NULL akan menyebabkan SetOutputMatrix beroperasi pada suara target tersebut.
 

[in] SourceChannels

Mengonfirmasi jumlah saluran output suara. Ini adalah jumlah saluran yang diproduksi oleh efek terakhir dalam rantai.

[in] DestinationChannels

Mengonfirmasi jumlah saluran input suara tujuan.

[in] pLevelMatrix

Array tingkat volume [SourceChannels × DestinationChannels] yang dikirim ke suara tujuan. Tingkat yang dikirim dari saluran sumber S ke saluran tujuan D ditentukan dalam bentuk pLevelMatrix[SourceChannels × D + S].

Misalnya, saat merender input stereo dua saluran ke dalam output 5,1 yang tertimbang terhadap saluran depan—tetapi tidak ada dari saluran tengah dan frekuensi rendah—matriks mungkin memiliki nilai yang ditunjukkan dalam tabel berikut.

Output Input Kiri [Indeks Array] Input Kanan [Indeks Array]
Left 1.0 [0] 0.0 [1]
Hak 0.0 [2] 1.0 [3]
Tengah Depan 0.0 [4] 0.0 [5]
LFE 0.0 [6] 0.0 [7]
Kiri Belakang 0.8 [8] 0.0 [9]
Kanan Belakang 0.0 [10] 0.8 [11]
 
Catatan Input kiri dan kanan sepenuhnya dipetakan ke saluran kiri dan kanan output; 80 persen input kiri dan kanan dipetakan ke saluran kiri dan kanan belakang.
 
Lihat Keterangan untuk informasi selengkapnya tentang tingkat volume.

[in] OperationSet

Mengidentifikasi panggilan ini sebagai bagian dari batch yang ditangguhkan. Lihat gambaran umum XAudio2 Operation Sets untuk informasi selengkapnya.

Mengembalikan nilai

Mengembalikan S_OK jika berhasil, kode kesalahan sebaliknya. Lihat Kode Kesalahan XAudio2 untuk deskripsi kode kesalahan.

Keterangan

Metode ini hanya berlaku untuk suara sumber dan submix, karena menguasai suara menulis langsung ke perangkat tanpa pencampuran matriks.

Tingkat volume dinyatakan sebagai pengali amplitudo floating-point antara -XAUDIO2_MAX_VOLUME_LEVEL dan XAUDIO2_MAX_VOLUME_LEVEL (-2²⁴ hingga 2²⁴), dengan perolehan maksimum 144,5 dB. Tingkat volume 1,0 berarti tidak ada redaman atau perolehan dan 0 berarti keheningan. Tingkat negatif dapat digunakan untuk menginversi fase audio. Lihat Volume XAudio2 dan Kontrol Pitch untuk informasi tambahan tentang kontrol volume.

Fungsi X3DAudioX3DAudioCalculate dapat menghasilkan matriks output untuk digunakan dengan SetOutputMatrix berdasarkan posisi suara dan posisi pendengar.

CatatanIXAudio2Voice::GetOutputMatrix selalu mengembalikan level yang terakhir ditetapkan oleh IXAudio2Voice::SetOutputMatrix. Namun, mereka mungkin belum benar-benar berlaku: mereka hanya berlaku saat berikutnya mesin audio berjalan setelah panggilan IXAudio2Voice::SetOutputMatrix (atau setelah panggilan IXAudio2::CommitChanges yang sesuai, jika IXAudio2Voice::SetOutputMatrix dipanggil dengan ID operasi yang ditangguhkan).
 

Persyaratan Platform

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)

Persyaratan

   
Target Platform Windows
Header xaudio2.h

Lihat juga

Cara: Mengubah Volume Suara

IXAudio2Voice