簡體   English   中英

SDL2 pcm 音頻播放太快

[英]SDL2 pcm audio playing too fast

我編寫了一個庫來讀取舊游戲中的無符號 8 位 pcm 音頻,並使用以下代碼將原始數據填充到 Mix_Chunk 中:

Mix_Chunk sfx;
sfx.allocated = 1;
sfx.abuf = (Uint8*)data;
sfx.alen = length;
sfx.volume = 32;

我知道采樣率為 10989HZ,但是當我使用Mix_OpenAudio(10989, AUDIO_U8, 2, 2048設置采樣率時,它播放的聲音太快了,是我設置的采樣率錯誤還是只是 SDL2 不喜歡 PCM?

如果我將它轉儲到一個文件中並用 Audacity 打開它,它就可以正常播放

解決了這個問題,在你調用 Mix_OpenAudio 之前運行這個:

SDL_AudioSpec wavSpec;
SDL_memset(&wavSpec, 0, sizeof(wavSpec)); /* or SDL_zero(want) */

wavSpec.callback = audioCallback;
wavSpec.userdata = nullptr;
wavSpec.format = AUDIO_S16;
wavSpec.channels = 2;
wavSpec.samples = 2048;

if (SDL_OpenAudio(&wavSpec, NULL) < 0)
{
    fprintf(stderr, "Could not open audio: %s\n", SDL_GetError());
}

pcm 音頻現在可以正確播放

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM