Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ReleaseBuffer-Methode gibt den Puffer frei.
Syntax
HRESULT ReleaseBuffer(
[in] UINT32 NumFramesRead
);
Die Parameter
[in] NumFramesRead
Die Anzahl der Audioframes, die der Client aus dem Aufnahmepuffer liest. Dieser Parameter muss entweder gleich der Anzahl der Frames im zuvor abgerufenen Datenpaket oder 0 sein.
Rückgabewert
Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, enthalten mögliche Rückgabecodes, sind jedoch nicht beschränkt auf die in der folgenden Tabelle gezeigten Werte.
| Rückgabecode | Description |
|---|---|
|
Der Parameter NumFramesRead wird auf einen anderen Wert als die Datenpaketgröße oder 0 festgelegt. |
|
Diesem Aufruf wurde kein entsprechender IAudioCaptureClient::GetBuffer-Aufruf vorangestellt. |
|
Das Audioendpunktgerät wurde nicht angeschlossen, oder die Audiohardware oder die zugehörigen Hardwareressourcen wurden neu konfiguriert, deaktiviert, entfernt oder anderweitig nicht zur Verwendung verfügbar gemacht. |
|
Die Ressourcen des Datenstroms wurden ungültig. Dieser Fehler kann aus den folgenden Gründen ausgelöst werden: – Der Datenstrom wird angehalten. – Ein exklusiver oder Offload-Datenstrom wird getrennt. – Eine verpackte Anwendung mit einem exklusiven Modus oder Offload-Stream wird stillgeschützt. - Ein "geschützter Ausgabedatenstrom" wird geschlossen. |
|
Der Windows-Audiodienst wird nicht ausgeführt. |
Bemerkungen
Der Client sollte diese Methode aufrufen, wenn das Lesen eines Zuvor abgerufenen Datenpakets durch Aufrufen der IAudioCaptureClient::GetBuffer-Methode abgeschlossen ist.
Die Daten im Paket, die der Client von einem GetBuffer-Aufruf erhalten hat, bleiben garantiert gültig, bis der Client ReleaseBuffer aufruft, um das Paket freizugeben.
Zwischen jedem GetBuffer-Aufruf und dem entsprechenden ReleaseBuffer-Aufruf muss der Client entweder das gesamte Datenpaket oder keins davon lesen. Wenn der Client das gesamte Paket nach dem GetBuffer-Aufruf liest, sollte es ReleaseBuffer aufrufen, wobei NumFramesRead auf die Gesamtanzahl der Frames im Datenpaket festgelegt ist. In diesem Fall erzeugt der nächste Aufruf von GetBuffer ein neues Datenpaket. Wenn der Client keine Daten aus dem Paket liest, die auf den Aufruf von GetBuffer folgen, sollte releaseBuffer aufgerufen werden, wobei NumFramesRead auf 0 festgelegt ist. In diesem Fall erzeugt der nächste GetBuffer-Aufruf dasselbe Datenpaket wie im vorherigen GetBuffer-Aufruf .
Wenn der Client ReleaseBuffer mit NumFramesRead aufruft, der auf einen anderen Wert als die Paketgröße oder 0 festgelegt ist, schlägt der Aufruf fehl und gibt fehlercode AUDCLNT_E_INVALID_SIZE zurück.
Clients sollten übermäßige Verzögerungen zwischen dem GetBuffer-Aufruf vermeiden, der einen Puffer abruft, und dem ReleaseBuffer-Aufruf , der den Puffer freigibt. Bei der Implementierung des Audiomoduls wird davon ausgegangen, dass der GetBuffer-Aufruf und der entsprechende ReleaseBuffer-Aufruf innerhalb desselben Pufferverarbeitungszeitraums erfolgen. Clients, die das Freigeben eines Puffers für mehrere Perioden verzögern, riskant sind, dass Beispieldaten verloren gehen.
Ein Codebeispiel, das die ReleaseBuffer-Methode aufruft, finden Sie unter Erfassen eines Datenstroms.
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Windows Vista [Desktop-Apps | UWP-Apps] |
| Mindestanforderungen für unterstützte Server | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
| Zielplattform | Fenster |
| Header | audioclient.h |