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 |
©2023 mgr Jerzy Wałaszek
|
SDL_MixAudioFormat
SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby miksować dane dźwiękowe w określonym formacie.
void SDL_MixAudioFormat(Uint8* dst, const Uint8* src, SDL_AudioFormat format, Uint32 len, int volume) |
dst | miejsce docelowe zmiksowanego dźwięku. |
src | źródłowy bufor dźwiękowy do zmiksowania. |
format | struktura SDL_AudioFormat reprezentująca pożądany format dźwięku. |
len | długość bufora dźwiękowego w bajtach. |
volume | głośność w zakresie 0 - 128, aby otrzymać pełną głośność dźwięku należy przyjąć wartość SDL_MIX_MAXVOLUME dla parametru volume. |
void MyAudioCallback(void *udata, Uint8 *stream, int len) { extern SDL_AudioFormat deviceFormat; extern const Uint8 *mixData; SDL_memset(stream, 0, len); // upewnij się, że to jest ciszą. // miksuj nasz dźwięk z ciszą przy głośności 50%. SDL_MixAudioFormat(stream, mixData, deviceFormat, len, SDL_MIX_MAXVOLUME / 2); } |
Funkcję udostępniono dla wygody – możesz miksować swoje własne dane dźwiękowe.
Nie używaj tej funkcji do miksowania ze sobą więcej niż dwóch strumieni próbek. Wynik wielokrotnego stosowania tej funkcji może być zniekształcony przez przycinanie, ponieważ nie ma w nie akumulatora o większym zakresie niż dane wejściowe (nie wspominając już o tym, iż jest to nieefektywny sposób wykonania tego zadania). Używaj funkcji miksujących z SDL_mixer, OpenAL lub zamiast tego napisz swój własny mikser.
Częstym nieporozumieniem jest to, iż uważa się tę funkcję za niezbędną do zapisu danych dźwiękowych do strumienia wyjściowego w dźwiękowej funkcji wywoływanej zwrotnie. Chociaż możesz to zrobić, to faktycznie potrzebna jest jedynie funkcja SDL_MixAudioFormat() przy miksowaniu pojedynczego strumienia dźwiękowego z regulacją głośności.
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2023 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: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.