Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il metodo GetBufferSize recupera le dimensioni (capacità massima) del buffer dell'endpoint.
Sintassi
HRESULT GetBufferSize(
[out] UINT32 *pNumBufferFrames
);
Parametri
[out] pNumBufferFrames
Puntatore a una variabile UINT32 in cui il metodo scrive il numero di fotogrammi audio che il buffer può contenere.
Valore restituito
Se il metodo ha esito positivo, restituisce S_OK. Se ha esito negativo, i possibili codici restituiti includono, ma non sono limitati, i valori illustrati nella tabella seguente.
| Codice restituito | Description |
|---|---|
|
Il flusso audio non è stato inizializzato correttamente. |
|
Il dispositivo endpoint audio è stato scollegato oppure l'hardware audio o le risorse hardware associate sono state riconfigurate, disabilitate, rimosse o altrimenti rese non disponibili per l'uso. |
|
Le risorse del flusso sono state invalidate. Questo errore può essere generato per i motivi seguenti: - Il flusso è sospeso. - Un flusso esclusivo o offload viene disconnesso. - Un'applicazione in pacchetto che ha una modalità esclusiva o un flusso di offload è inattiva. - Un flusso di "output protetto" viene chiuso. |
|
Il servizio audio windows non è in esecuzione. |
|
Il parametro pNumBufferFrames è NULL. |
Osservazioni:
Questo metodo richiede l'inizializzazione precedente dell'interfaccia IAudioClient . Tutte le chiamate a questo metodo avranno esito negativo con l'errore AUDCLNT_E_NOT_INITIALIZED finché il client non inizializza il flusso audio chiamando correttamente il metodo IAudioClient::Initialize .
Questo metodo recupera la lunghezza del buffer dell'endpoint condiviso tra l'applicazione client e il motore audio. La lunghezza viene espressa come numero di fotogrammi audio che il buffer può contenere. Le dimensioni in byte di un frame audio vengono calcolate come numero di canali nel flusso moltiplicato per le dimensioni del campione per canale. Ad esempio, le dimensioni del frame sono quattro byte per un flusso stereo (a 2 canali) con campioni a 16 bit.
Il metodo IAudioClient::Initialize alloca il buffer. Il client specifica la lunghezza del buffer nel valore del parametro hnsBufferDuration passato al metodo Initialize . Per i client di rendering, la lunghezza del buffer determina la quantità massima di dati di rendering che l'applicazione può scrivere nel buffer dell'endpoint durante un singolo passaggio di elaborazione. Per i client di acquisizione, la lunghezza del buffer determina la quantità massima di dati di acquisizione che il motore audio può leggere dal buffer dell'endpoint durante un singolo passaggio di elaborazione. Il client deve sempre chiamare GetBufferSize dopo aver chiamato Initialize per determinare le dimensioni effettive del buffer allocato, che potrebbero differire dalle dimensioni richieste.
I client di rendering possono usare questo valore per calcolare le dimensioni massime del buffer di rendering che possono essere richieste da IAudioRenderClient::GetBuffer durante ogni passaggio di elaborazione.
Per esempi di codice che chiamano il metodo GetBufferSize , vedere gli argomenti seguenti:
Requisiti
| Requisito | Value |
|---|---|
| Client minimo supportato | Windows Vista [app desktop | App UWP] |
| Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
| Piattaforma di destinazione | Windows |
| Header | audioclient.h |