点击声音取消暂停SDL2音频

问题描述:

我第一次用SDL_PauseAudio(0)取消暂停SDL音频,在初始化后立即使用SDL_OpenAudio()我总是点击一下。点击声音取消暂停SDL2音频

我试着在我的音频回调中处理这个问题,确保声音的振幅从零增加(实际上现在我只是使用正弦波,相位从0开始,所以波形式从零开始自然而然地上升),但这没有帮助。

在拨打SDL_OpenAudio()SDL_PauseAudio(0)以避免此点击之间有什么特别的我应该做的吗?我一直在努力在文档中找到任何东西。

我解决了这个问题 - 没有具体到SDL。问题出现在我的回调代码中。

问题是我已经从无符号16位int格式转换为带符号16位整型。在我的回调中,我将音频计算为double,然后在输出上转换为int格式。 转换为无符号时,包括在我的(-1.0至1.0范围)信号中添加1.0,使其全部为正而不是以0为中心。我只是在切换到有符号音频时忘记删除+1.0 - 实际上,我的信号有一个直流偏移,导致初始/关闭不连续。

没有我发布的回调和初始化代码,几乎没有人有机会猜到 - 我认为我的回调代码很好,这是一个库使用问题。