Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek
Uaktualniono: 31.07.2022

©2022 mgr Jerzy Wałaszek
I LO w Tarnowie

Interfejs SDL2:

SDL_BuildAudioCVT

SPIS TREŚCI

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.

SDL_BuildAudioCVT

Użyj tej funkcji, aby zainicjować strukturę SDL_AudioCVT do konwersji.

Składnia

int SDL_BuildAudioCVT(SDL_AudioCVT*   cvt,
                      SDL_AudioFormat src_format,
                      Uint8           src_channels,
                      int             src_rate,
                      SDL_AudioFormat dst_format,
                      Uint8           dst_channels,
                      int             dst_rate)

Parametry funkcji

cvt struktura SDL_AudioCVT wypełniona informacją o konwersji dźwiękowej.
src_format format źródłowy danych dźwiękowych; więcej informacji znajdziesz w SDL_AudioFormat.
src_channels liczba kanałów w danych źródłowych.
src_rate częstotliwość (liczba próbek na sekundę) danych źródłowych.
dst_format format docelowy danych dźwiękowych; więcej informacji znajdziesz w SDL_AudioFormat.
dst_channels liczba kanałów w danych docelowych.
dst_rate częstotliwość (liczba próbek na sekundę) danych docelowych.

Wartość zwracana

Zwraca 1, jeśli filtr dźwiękowy jest przygotowany, 0, jeśli konwersja nie jest potrzebna lub ujemny kod błędu; wywołaj funkcję SDL_GetError(), aby otrzymać więcej informacji o błędzie.

Przykładowy kod

// Zmień 1024 ramek sampli stereo przy 48000 Hz z float32 na int16.
SDL_AudioCVT cvt;
SDL_BuildAudioCVT(&cvt, AUDIO_F32, 2, 48000, AUDIO_S16, 2, 48000);
SDL_assert(cvt.needed);  // to zawsze jest potrzebne.
cvt.len = 1024 * 2 * 4;  // 1024 ramek stereo float32.
cvt.buf = (Uint8 *) SDL_malloc(cvt.len * cvt.len_mult);
// wczytaj swoje dane float32 tutaj do cvt.buf.
SDL_ConvertAudio(&cvt);
// cvt.buf zawiera teraz cvt.len_cvt bajtów skonwertowanych danych.

Uwagi

Zanim struktura SDL_AudioCVT będzie mogła zostać użyta do konwersji danych dźwiękowych, musi zostać zainicjowana informacją o źródle i przeznaczeniu.

Funkcja zeruje każde pole struktury SDL_AudioCVT, zatem musi zostać wywołana przed wpisaniem przez aplikację informacji o ostatecznym buforze.

Gdy funkcja zakończy się powodzeniem z informacją, iż konwersja jest potrzebna, aplikacja wypełnia resztę pól struktury SDL_AudioCVT, ponieważ teraz już zna rozmiar bufora, który musi przydzielić w pamięci, a następnie może wywołać SDL_ConvertAudio() do zakończenia procesu konwersji.

Powiązane funkcje

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2022 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.