Metode IAudioClient::GetBufferSize (audioclient.h)

Metode GetBufferSize mengambil ukuran (kapasitas maksimum) buffer titik akhir.

Sintaks

HRESULT GetBufferSize(
  [out] UINT32 *pNumBufferFrames
);

Parameter

[out] pNumBufferFrames

Arahkan ke variabel UINT32 tempat metode menulis jumlah bingkai audio yang dapat dipegang buffer.

Nilai kembali

Jika metode berhasil, metode akan mengembalikan S_OK. Jika gagal, kemungkinan kode pengembalian disertakan, tetapi tidak terbatas pada, nilai yang diperlihatkan dalam tabel berikut.

Menampilkan kode Deskripsi
AUDCLNT_E_NOT_INITIALIZED
Aliran audio belum berhasil diinisialisasi.
AUDCLNT_E_DEVICE_INVALIDATED
Perangkat titik akhir audio telah dicabut, atau perangkat keras audio atau sumber daya perangkat keras terkait telah dikonfigurasi ulang, dinonaktifkan, dihapus, atau tidak tersedia untuk digunakan.
AUDCLNT_E_SERVICE_NOT_RUNNING
Layanan audio Windows tidak berjalan.
E_POINTER
Parameter pNumBufferFrames adalah NULL.

Keterangan

Metode ini memerlukan inisialisasi sebelumnya dari antarmuka IAudioClient . Semua panggilan ke metode ini akan gagal dengan kesalahan AUDCLNT_E_NOT_INITIALIZED sampai klien menginisialisasi aliran audio dengan berhasil memanggil metode IAudioClient::Initialize .

Metode ini mengambil panjang buffer titik akhir yang dibagikan antara aplikasi klien dan mesin audio. Panjang dinyatakan sebagai jumlah bingkai audio yang dapat ditahan oleh buffer. Ukuran dalam byte bingkai audio dihitung sebagai jumlah saluran dalam aliran dikalikan dengan ukuran sampel per saluran. Misalnya, ukuran bingkai adalah empat byte untuk aliran stereo (2 saluran) dengan sampel 16-bit.

Metode IAudioClient::Initialize mengalokasikan buffer. Klien menentukan panjang buffer dalam nilai parameter hnsBufferDuration yang diteruskannya ke metode Inisialisasi . Untuk klien rendering, panjang buffer menentukan jumlah maksimum data penyajian yang dapat ditulis aplikasi ke buffer titik akhir selama satu pass pemrosesan. Untuk menangkap klien, panjang buffer menentukan jumlah maksimum data tangkapan yang dapat dibaca mesin audio dari buffer titik akhir selama satu pass pemrosesan. Klien harus selalu memanggil GetBufferSize setelah memanggil Inisialisasi untuk menentukan ukuran aktual buffer yang dialokasikan, yang mungkin berbeda dari ukuran yang diminta.

Klien rendering dapat menggunakan nilai ini untuk menghitung ukuran buffer penyajian terbesar yang dapat diminta dari IAudioRenderClient::GetBuffer selama setiap pass pemrosesan.

Untuk contoh kode yang memanggil metode GetBufferSize , lihat topik berikut:

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header audioclient.h

Lihat juga

Antarmuka IAudioClient

IAudioClient::Initialize

IAudioRenderClient::GetBuffer