Udostępnij przez


Zarządzanie blokami danych przez sondowanie

[Funkcja skojarzona z tą stroną, Waveform Audio, jest starszą funkcją. Został zastąpiony przez WASAPI i Audio Graphs. WASAPI i Audio Graph s zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał WASAPI i Audio Graphs zamiast Waveform Audio, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Oprócz korzystania z użyciem funkcji wywołania zwrotnego, można sprawdzić element członkowski dwFlags w strukturze WAVEHDR, aby określić, kiedy urządzenie audio skończyło pracę z blokiem danych. Czasami lepiej jest sprawdzać dwFlags niż czekać na inny mechanizm, który odbiera komunikaty od sterowników. Na przykład po wywołaniu funkcji waveOutReset w celu wydania oczekujących bloków danych można natychmiast sprawdzić, aby upewnić się, że bloki danych zostały zwolnione, zanim wywołasz waveOutUnprepareHeader i zwolnisz pamięć dla bloków danych.

Możesz użyć flagi WHDR_DONE do przetestowania dwFlags składnika. Po ustawieniu flagi WHDR_DONE w dwFlags elementu członkowskiego struktury WAVEHDR, sterownik zakończył pracę z blokiem danych.