我是SDL的新手。我正在使用SDL开发一个媒体播放器,现在我遇到了音频回调函数有时调用不及时,导致音频有点断断续续的问题。
我用这样一段代码打开音频设备:
wanted_spec.xxx = xxx;
wanted_spec.callback = audio_callback; //audio_callback is my audio callback function
SDL_OpenAudio(&wanted_spec, &spec);
我的操作系统是Windows XP。
你知道吗?有人能建议如何将数据馈送同步到0延迟的回调函数吗。
我的问题是,我想传递PCM样本(可能是1024个样本),而不是通过SDL_LoadWAV提供整个wav文件。(设计是这样的,我会得到PCM样品)
但问题是,回调函数并没有被及时调用,或者调用被延迟,导致声音时断时续。我无法将数据同步传递给回调函数。
你能建议一种将传递数据(示例)同步到回调函数的方法吗?或者提供一些在示例中传递数据的应用程序吗?
我们需要真正的值来完全回答您的问题。
您尝试的缓冲区大小是多少?
还要意识到SDL通常不会给你想要的东西,所以请检查实际的规范缓冲区大小
我一直在windows上使用SDL的二进制mingw32端口,无论我请求什么,它都不会给我小于1秒的缓冲区。