我正在使用SDL2 / SDL_mixer和其他几个声音库进行一些小项目。我已经尝试了一段时间来同步我的音频和视频但是无法在成功的任何地方获得它。这些东西都是新手,所以请原谅穷人的逻辑和编码。起初我想在每帧之后将延迟设置为SDL_Delay(30),然后在该范围内设置其他一些数字。不太对劲。然后我尝试通过获取Ticks来做到这一点。我将获得current_ticks和last_ticks之间的差异,如果ticks之间的差值<= 30并将延迟设置为30-delta,则设置延迟。仍然不太正确(到目前为止)。希望有更多经验的人可以指导我朝着正确的方向前进。关于视频,它当然是一个可视化器,看起来像一个受欢迎的初学者项目。
答案 0 :(得分:4)
同步音频和视频的基本方法是选择一个用作定时器源,并根据该定时器显示另一个。最简单的通常是音频,但由于它通常是前置缓冲,因此您需要一些方法来测量音频流中实际从扬声器中出来的时间。一旦你得到它,只需等待音频到达下一个视频帧的正确时间并显示它。