mingw32 環境を介して SDL を使用する C++ アプリケーションのオーディオをストリーミングしようとしています。私の理解では、それはかなり単純な問題です。
extern "C" void audioStep(void* unused, Uint8* stream, int len);
void initAudio()
{
SDL_AudioSpec* fmt;
fmt = (SDL_AudioSpec*)malloc(sizeof(SDL_AudioSpec));
fmt->freq = 22050;
fmt->format = AUDIO_S16;
fmt->channels = 1;
fmt->samples = 8192;
fmt->callback = audioStep;
fmt->userdata = NULL;
SDL_AudioSpec obFmt;
if (SDL_OpenAudio(fmt, &obFmt) < 0)
{
fprintf(stderr, "Unable to open audio: %s\n", SDL_GetError());
getchar();
exit(1);
}
SDL_PauseAudio(0);
}
.
.
.
extern "C" void audioStep(void* unused, Uint8* stream, int len)
{
// Do stuff.
}
私が経験している問題は、audioStep
決して呼び出されないようだということです。before initAudio
is runSDL_Init
は で呼び出されSDL_INIT_EVERYTHING
ます。次に、グラフィックスが完全に初期化され(SDL_SetVideoMode
など)、オーディオシステムが上記のコードで初期化されます。
オーディオサポートなしでSDLをコンパイルした可能性はありますか? (オーディオが有効になっているかどうか、または何らかのヌルオーディオデバイスを使用しているかどうかを確認する方法はありますか?)