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 GetBufferSize-Methode ruft die Größe (maximale Kapazität) des Endpunktpuffers ab.
Syntax
HRESULT GetBufferSize(
[out] UINT32 *pNumBufferFrames
);
Die Parameter
[out] pNumBufferFrames
Zeiger auf eine UINT32-Variable , in die die Methode die Anzahl der Audioframes schreibt, die der Puffer enthalten kann.
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 Audiodatenstrom wurde nicht erfolgreich initialisiert. |
|
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. |
|
Der Parameter pNumBufferFrames ist NULL. |
Bemerkungen
Für diese Methode ist eine vorherige Initialisierung der IAudioClient-Schnittstelle erforderlich. Alle Aufrufe dieser Methode schlagen mit dem Fehler AUDCLNT_E_NOT_INITIALIZED fehl, bis der Client den Audiodatenstrom initialisiert, indem die IAudioClient::Initialize-Methode erfolgreich aufgerufen wird.
Diese Methode ruft die Länge des Endpunktpuffers ab, der zwischen der Clientanwendung und dem Audiomodul gemeinsam genutzt wird. Die Länge wird als Die Anzahl der Audioframes ausgedrückt, die der Puffer enthalten kann. Die Größe in Bytes eines Audioframes wird als Die Anzahl der Kanäle im Datenstrom multipliziert mit der Beispielgröße pro Kanal berechnet. Die Framegröße beträgt beispielsweise vier Byte für einen Stereodatenstrom (2-Kanal) mit 16-Bit-Beispielen.
Die IAudioClient::Initialize-Methode weist den Puffer zu. Der Client gibt die Pufferlänge im hnsBufferDuration-Parameterwert an, den er an die Initialize-Methode übergibt. Bei Renderclients bestimmt die Pufferlänge die maximale Menge an Renderingdaten, die die Anwendung während eines einzelnen Verarbeitungsdurchlaufs in den Endpunktpuffer schreiben kann. Bei Aufnahmeclients bestimmt die Pufferlänge die maximale Menge an Aufnahmedaten, die das Audiomodul während eines einzelnen Verarbeitungsdurchlaufs aus dem Endpunktpuffer lesen kann. Der Client sollte getBufferSize immer aufrufen, nachdem initialize aufgerufen wurde, um die tatsächliche Größe des zugeordneten Puffers zu ermitteln, die sich von der angeforderten Größe unterscheiden kann.
Renderclients können diesen Wert verwenden, um die größte Renderingpuffergröße zu berechnen, die von IAudioRenderClient::GetBuffer während jedes Verarbeitungsdurchlaufs angefordert werden kann.
Codebeispiele, die die GetBufferSize-Methode aufrufen, finden Sie in den folgenden Themen:
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 |