我使用SDL_mixer函数加载音乐曲目:
Mix_Music * SDLCALL Mix_LoadMUS(const char *file);
为了与视频同步我需要知道当前的音乐位置。 我该如何确定?
答案 0 :(得分:1)
SDL似乎没有为您想要的内容提供简单的钩子。一旦你触发Mix_PlayMusic,就会有一个钩子,当音乐播放完{3}时会收到通知,但就是这样。
您可以为视频使用完全独立的时钟机制,并相信时间将“正好排队”(例如,如果它是一首4分钟的歌曲,它将在您通话后4分钟完成播放) 。但是,既然我怀疑你是在为Mix_HookMusicFinished开发,那么结果将不太理想。
您可以通过Real-Time OS安装挂钩。您安装的“效果”实际上并不是用于修改音频流,而只是关注已播放的样本数量,并相应地对视频进行更正。 (在这里大声思考。)