小编Pet*_*ter的帖子

使用 SDL2 录音麦克风延迟 2 秒

我正在使用 SDL2 录制我的麦克风。不知何故,大约 2 秒后会调用回调。我预计它会立即被调用。

如果我为我的扬声器创建回调,它将立即被调用。

这是我得到延迟的 MWE:

#include <SDL2/SDL.h>

void cb(void *userdata, Uint8 *stream, int len) {
    printf("Callback at %u\n", SDL_GetTicks());
}

int main() {
    SDL_Init(SDL_INIT_AUDIO);

    SDL_AudioDeviceID dev;

    SDL_AudioSpec want, have;

    SDL_zero(want);
    want.freq = 44100;
    want.format = AUDIO_S16SYS;
    want.channels = 1;
    want.samples = 1024;
    want.callback = cb;
    dev = SDL_OpenAudioDevice(SDL_GetAudioDeviceName(0, 1), 1, &want, &have, 0);

    if (have.format != want.format) {
        SDL_Log("We didn't get the wanted format.");
        return 1;
    }

    SDL_PauseAudioDevice(dev, 0);

    if (dev == 0) {
        SDL_Log("Failed to open …
Run Code Online (Sandbox Code Playgroud)

c linux sdl pulseaudio sdl-2

5
推荐指数
0
解决办法
3546
查看次数

标签 统计

c ×1

linux ×1

pulseaudio ×1

sdl ×1

sdl-2 ×1