SDL_OpenAudio()
2020-03-02 本文已影响0人
程序员都是傻子呀
SDL_AudioSpec spec;
spec.freq = 44100;
spec.channels = 2;
spec.format = AUDIO_S16SYS;
spec.silence = 0;
spec.callback = read_audio_data;
spec.userdata = NULL; // 我们这里暂时不需要回调参数
if (SDL_OpenAudio(&spec, NULL)) {
SDL_Log("Failed to open audio device!");
}
SDL_PauseAudio(0);
SDL_CloseAudio();
void read_audio_data(void *udata, Uint8 *stream, int Len)
{
if(buffer_len == 0) {
return;
}
SDL_memset(stream, 0, len);
len = (len < buffer_len) ? len : buffer_len;
SDL_MixAudio(stream, audio_pos, len, SDL_MIX_MAXVOLUME);
audio_pos += len;
buffer_len -= len;
}