2010-03-09 5 views
1

난에는 SDL_mixer 기능을 사용하여 내 음악 트랙을로드 :SDL. 현재 음악 위치

Mix_Music * SDLCALL Mix_LoadMUS(const char *file); 

을 비디오와 동기화를 들어 내가 현재 음악 위치를 알 필요가있다. 어떻게 확인할 수 있습니까?

답변

1

SDL은 사용자가 원하는대로 쉽게 훅을 노출하지 않는 것 같습니다. 일단 Mix_PlayMusic을 트리거하면 Mix_HookMusicFinished으로 음악 재생이 끝나면 알림을받을 수 있습니다.

비디오에 완전히 독립적 인 시계 메커니즘을 사용할 수 있으며 타이밍이 "일렬로 정렬됩니다"라고 신뢰할 수 있습니다 (예 : 4 분짜리 노래 인 경우 4 분 후에 재생 완료 됨)). 그러나 당신이 Real-Time OS을 위해 개발하고 있다고 의심하기 때문에 그 결과는 이상적이지 않습니다.

Mix_SetPostMix을 통해 후크를 설치하는 것이 가능할 수 있습니다. 설치하려는 "효과"는 실제로 오디오 스트림을 수정하는 것이 아니라 재생 된 샘플의 수를 파악하고 이에 따라 비디오를 수정하는 것입니다. (그냥 큰소리로 생각해보십시오.)