2

我使用 SDL_mixer 函数加载我的音乐曲目:

Mix_Music * SDLCALL Mix_LoadMUS(const char *file);

为了与视频同步,我需要知道当前的音乐位置。我怎样才能确定这一点?

4

1 回答 1

1

SDL 似乎并没有为您想要的东西公开一个简单的钩子。一旦你触发Mix_PlayMusic ,当你使用Mix_HookMusicFinished播放完音乐时,你就会收到一个钩子通知,但仅此而已。

您可以为视频使用完全独立的时钟机制,并相信时间会“排队”(例如,如果它是一首 4 分钟的歌曲,它将在您调用 play 后恰好 4 分钟播放)。但由于我怀疑您是在为Real-Time OS 开发,所以结果并不理想。

您可能可以通过Mix_SetPostMix安装挂钩。您安装的“效果”实际上并不是用于修改音频流,而只是关注已播放的样本数量并相应地对视频进行更正。(只是在这里大声思考。)

于 2010-03-09T18:57:19.123 回答