Metodo IAudioCaptureClient::ReleaseBuffer (audioclient.h)
Il metodo ReleaseBuffer rilascia il buffer.
Sintassi
HRESULT ReleaseBuffer(
[in] UINT32 NumFramesRead
);
Parametri
[in] NumFramesRead
Numero di frame audio letti dal buffer di acquisizione dal client. Questo parametro deve essere uguale al numero di frame nel pacchetto di dati acquisito in precedenza o 0.
Valore restituito
Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i codici restituiti possibili includono, ma non sono limitati a, i valori visualizzati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Il parametro NumFramesRead è impostato su un valore diverso dalle dimensioni del pacchetto di dati o da 0. |
|
Questa chiamata non è stata preceduta da una chiamata IAudioCaptureClient::GetBuffer corrispondente. |
|
Il dispositivo endpoint audio è stato scollegato o l'hardware audio o le risorse hardware associate sono state riconfigurate, disabilitate, rimosse o altrimenti non disponibili per l'uso. |
|
Il servizio audio Di Windows non è in esecuzione. |
Commenti
Il client deve chiamare questo metodo al termine della lettura di un pacchetto di dati ottenuto in precedenza chiamando il metodo IAudioCaptureClient::GetBuffer .
I dati nel pacchetto ottenuto dal client da una chiamata GetBuffer rimangono validi fino a quando il client chiama ReleaseBuffer per rilasciare il pacchetto.
Tra ogni chiamata GetBuffer e la chiamata ReleaseBuffer corrispondente, il client deve leggere l'intero pacchetto di dati o nessuno di esso. Se il client legge l'intero pacchetto seguendo la chiamata GetBuffer , deve chiamare ReleaseBuffer con NumFramesRead impostato sul numero totale di fotogrammi nel pacchetto di dati. In questo caso, la chiamata successiva a GetBuffer produrrà un nuovo pacchetto di dati. Se il client legge nessuno dei dati dal pacchetto che segue la chiamata a GetBuffer, deve chiamare ReleaseBuffer con NumFramesRead impostato su 0. In questo caso, la chiamata GetBuffer successiva produrrà lo stesso pacchetto di dati della chiamata GetBuffer precedente.
Se il client chiama ReleaseBuffer con NumFramesRead impostato su qualsiasi valore diverso dalle dimensioni del pacchetto o 0, la chiamata ha esito negativo e restituisce il codice di errore AUDCLNT_E_INVALID_SIZE.
I client devono evitare ritardi eccessivi tra la chiamata GetBuffer che acquisisce un buffer e la chiamata ReleaseBuffer che rilascia il buffer. L'implementazione del motore audio presuppone che la chiamata GetBuffer e la chiamata ReleaseBuffer corrispondente si verifichino entro lo stesso periodo di elaborazione del buffer. Client che ritarda il rilascio di un buffer per più di un periodo di rischio di perdita dei dati di esempio.
Per un esempio di codice che chiama il metodo ReleaseBuffer, vedere Acquisizione di un Stream.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | audioclient.h |