Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Setelah aplikasi memulai pemrosesan audio, penyusun grafik mengonfigurasi sAPO ke dalam grafik audio dan juga menginisialisasi sAPO. Layanan audio kemudian bernegosiasi dengan LFX sAPO untuk menetapkan format untuk data audio pada input dan output sAPO. Proses negosiasi ini dikenal sebagai negosiasi format.
Semua sPO yang menyediakan efek sistem audio untuk Windows Vista harus memiliki antarmuka dan metode tertentu. Metode yang digunakan oleh sAPO dan mesin audio untuk menegosiasikan format data adalah: metode IsInputFormatSupported dari antarmuka IAudioProcessingObject dan metode LockForProcess dan UnlockForProcess antarmuka IAudioProcessingObjectConfiguration .
Untuk memulai negosiasi format, layanan audio pertama-tama mengatur output LFX sAPO ke format berbasis float32 default. Layanan audio kemudian memanggil metode IAudioProcessingObject::IsInputFormatSupported dari sAPO LFX, menyarankan format default, dan memantau respons HRESULT dari metode ini. Jika LFX sAPO dapat mendukung format yang disarankan, LFX akan mengembalikan S_OK, bersama dengan referensi ke format yang didukung. Jika LFX sAPO tidak dapat mendukung format yang disarankan, LFX mengembalikan S_FALSE bersama dengan referensi ke format yang paling cocok dengan yang disarankan. Jika LFX sAPO tidak dapat mendukung format yang disarankan dan tidak memiliki padanan yang mirip, maka itu akan mengembalikan APOERR_FORMAT_NOT_SUPPORTED. GFX sAPO bekerja dengan format output LFX sAPO. Jadi GFX sAPO tidak terlibat dalam proses negosiasi format.
Setelah format data dipilih untuk memproses data audio, penyusun grafik pemrosesan audio memanggil metode IAudioProcessingObjectConfiguration::LockForProcess dari sAPO, yang menyebabkan pemilihan format diselesaikan.
Jika sAPO Windows Vista mengembalikan kesalahan ke sAPO kustom pembungkus sebagai respons terhadap panggilan ke metode LockForProcess, sAPO kustom tersebut harus menangani kesalahan dengan cara yang sama seperti saat menangani kesalahan dari CoCreateInstance ketika upaya untuk membuat instans sAPO gagal. Lihat file Spkrfill.cpp untuk detail tentang cara menimpa metode LockForProcess yang disediakan oleh sistem.
Karena cara layanan audio beroperasi, sPO LFX dan GFX harus dapat merespons secara independen satu sama lain terhadap kueri dari layanan audio mengenai format data.
Penting Ketika Anda menerapkan sAPO kustom yang membungkus sAPO Windows Vista LFX, jangan tentukan flag APO_FLAG_FRAMESPERSECOND_MUST_MATCH pada properti pendaftaran sAPO kustom. Jika Anda menentukan flag ini, Windows Vista LFX sAPO tidak akan dapat melakukan pengisian speaker, virtualisasi headphone, atau virtual surround. Selain itu, sAPO kustom Anda tidak akan dapat mencampur aliran audio apa pun. Misalnya, sAPO kustom Anda tidak akan dapat mencampur aliran audio 5.1 ke aliran audio stereo dua saluran.