본문 바로가기
개발이야기

MP3 현재 재생시간 계산하기 (플레이타임)

by 코저씨 2022. 1. 24.
728x90

MP3를 재생하다 보면 현재 재생시간을 표시해줘야 한다. 

이를 계산하는 방법이 간단하게는.. 재생이 되면 타이머를 써서, 멈출때까지 타이머로 보여주는 방법이 있는데

문제는 지정한 시간으로 재생하고자 할때는 이 방법은 사용할수가 없다.

 

그래서 조금 귀찮더라도 계산을 통해 얻어야 해야 한다. 


우선 MP3 파일을 재생하기 전에 얻을 수 있는 정보는 다음과 같다.

  • 총 재생시간
  • 파일 크기
  • 그외 음원 정보

그리고 재생중에는 현재 파일의 오프셋 (seek) 을 알 수가 있다.  현재 오프셋이 파일의 절반되는 위치에 있으면

4분짜리 음원일 때 2분을 나타내며, 1/4의 위치에 있으면 1분을 나타낸다. 그래서 비율을 계산하면 다음과 같다.

 

재생 시간 비율 = 현재 파일 오프셋 / 전체 파일 크기 

 

이제 비율을 전체 재생 시간에 곱해주면 현 시간이 계산된다.

 

재생 시간  = (현재 파일 오프셋 / 전체 파일 크기) * 전체 재생시간


* 주의 : 현재 파일 오프셋은 파일 첫 위치 (0번지)까지의 거리가 아닌, MP3 첫번째 프레임을 시작주소로 봐야 한다. 

          (현재 파일 오프셋 - MP3 첫 프레임 오프셋). 전체파일크기도 마찬가지.

 

728x90