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_QueueAudio
SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby umieścić w kolejce więcej dźwięku na urządzeniach nie posługujących się funkcjami wywoływanymi zwrotnie (ang. callback).
int SDL_QueueAudio(SDL_AudioDeviceID dev, const void* data, Uint32 len) |
dev | identyfikator ID urządzenia, dla którego będą kolejkowane dane dźwiękowe. |
data | dane do umieszczenia w kolejce urządzenia dla późniejszego odtworzenia. |
len | liczba bajtów (nie próbek!) danych, na które wskazuje parametr data. |
SDL oferuje dwa sposoby przesyłania danych dźwiękowych do urządzenia: możesz albo dostarczyć funkcję wywoływaną zwrotnie, którą SDL będzie wyzwalało z pewną częstotliwością w celu pobrania więcej dźwięku (metoda pull), albo nie dostarczasz takiej funkcji, a wtedy SDL będzie oczekiwać od ciebie udostępniania danych w regularnych odstępach czasu (metoda push) za pomocą tej funkcji.
Nie ma ograniczeń co do ilości zakolejkowanych danych poza wyczerpaniem dostępnej pamięci. Zakolejkowane dane będą w razie potrzeby przesyłane kolejno do urządzenia bez dalszej interwencji z twojej strony. Jeśli urządzenie będzie potrzebowało więcej danych dźwiękowych, niż zostało umieszczone w kolejce, zacznie odtwarzać ciszę. Oznacza to, iż otrzymasz wtedy przerwy w odtwarzaniu dźwięku, jeśli rutynowo nie zakolejkujesz wystarczającej ilości danych.
Ta funkcja kopiuje dostarczone dane, zatem gdy nastąpi powrót, możesz je usuwać z pamięci. Funkcja jest bezpieczna wątkowo, lecz kolejkowanie z dwóch wątków do tego samego urządzenia nie daje żadnych gwarancji, który z buforów będzie zakolejkowany najpierw.
Nie wolno kolejkować dźwięku na urządzeniu, które wykorzystuje dostarczoną przez aplikację funkcję wywoływaną zwrotnie; jęli będziesz tego próbował, funkcja zwróci błąd. Musisz użyć albo kolejki, albo funkcji callback, ale nie obu metod jednocześnie.
Nie powinieneś wywoływać SDL_LockAudio()dla urządzenia przed kolejkowaniem; 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.