Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2024 mgr Jerzy Wałaszek
|
SDL_DequeueAudio
SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby usunąć z kolejki więcej dźwięku na urządzeniach nie stosujących funkcji wywoływanych zwrotnie.
Uint32 SDL_DequeueAudio(SDL_AudioDeviceID dev, void* data, Uint32 len) |
dev | identyfikator urządzenia, dla którego będziemy usuwać z kolejki dane dźwiękowe. |
data | wskaźnik, gdzie dane powinny zostać skopiowane. |
len | liczba bajtów (nie próbek), na które wskazuje wskaźnik data. |
SDL oferuje dwa sposoby nagrywania dźwięku na urządzeniu nagrywającym: możesz albo dostarczyć funkcję wywoływaną zwrotnie (ang. callback), którą SDL uaktywnia z pewną częstotliwością, gdy urządzenie nagra nieco więcej danych (metoda push), albo możesz nie udostępniać takiej funkcji, a wtedy SDL będzie oczekiwało, iż w regularnych odstępach czasu będziesz pobierał dane dźwiękowe (metoda pull) za pomocą tej funkcji.
Nie ma ograniczeń na ilość danych w kolejce za wyjątkiem braku pamięci. Dane z urządzenia będą kolejkowane według potrzeb bez dalszej interwencji z twojej strony. Oznacza to, iż w końcu zabraknie ci pamięci, jeśli nie będziesz ich regularnie usuwać z kolejki.
W stanie pauzy urządzenia nagrywające nie umieszczają danych w kolejce; jeśli stwierdzisz, że przez pewien czas nie będzie potrzeby nagrywania danych, użyj SDL_PauseAudioDevice(), aby zatrzymać wprowadzanie danych do kolejki przez urządzenie nagrywające. Może to być użyteczne podczas, powiedzmy, okresów ładowania poziomów. Po ponownym uruchomieniu urządzenie nagrywające zacznie kolejkować dane od tego punktu, po wcześniejszym usunięciu wszystkich nagranych danych podczas wstrzymania.
Funkcja jest bezpieczna wątkowo, lecz usuwanie z kolejki tego samego urządzenia za pomocą dwóch wątków w tym samym czasie nie daje obietnic, który wątek pierwszy pobierze dane.
Nie możesz pobierać danych z kolejki urządzenia używającego dostarczonej przez aplikację funkcji wywoływanej zwrotnie; jeśli tego spróbujesz, dostaniesz w wyniku błąd. Musisz używać tej funkcji wywoływanej zwrotnie lub pobierać dane za pomocą tej funkcji, lecz nie obiema metodami naraz.
Przed usuwaniem z kolejki nie powinieneś wywoływać na tym urządzeniu SDL_LockAudio(); SDL obsługuje blokowanie wewnętrznie dla tej funkcji.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.