728x90
MP3를 재생하다 보면 현재 재생시간을 표시해줘야 한다.
이를 계산하는 방법이 간단하게는.. 재생이 되면 타이머를 써서, 멈출때까지 타이머로 보여주는 방법이 있는데
문제는 지정한 시간으로 재생하고자 할때는 이 방법은 사용할수가 없다.
그래서 조금 귀찮더라도 계산을 통해 얻어야 해야 한다.
우선 MP3 파일을 재생하기 전에 얻을 수 있는 정보는 다음과 같다.
- 총 재생시간
- 파일 크기
- 그외 음원 정보
그리고 재생중에는 현재 파일의 오프셋 (seek) 을 알 수가 있다. 현재 오프셋이 파일의 절반되는 위치에 있으면
4분짜리 음원일 때 2분을 나타내며, 1/4의 위치에 있으면 1분을 나타낸다. 그래서 비율을 계산하면 다음과 같다.
재생 시간 비율 = 현재 파일 오프셋 / 전체 파일 크기
이제 비율을 전체 재생 시간에 곱해주면 현 시간이 계산된다.
재생 시간 = (현재 파일 오프셋 / 전체 파일 크기) * 전체 재생시간
* 주의 : 현재 파일 오프셋은 파일 첫 위치 (0번지)까지의 거리가 아닌, MP3 첫번째 프레임을 시작주소로 봐야 한다.
(현재 파일 오프셋 - MP3 첫 프레임 오프셋). 전체파일크기도 마찬가지.
728x90
'개발이야기' 카테고리의 다른 글
Silicon Labs EFR32 BLE SPP 안드로이드 송수신 앱 개발 (1) | 2022.03.13 |
---|---|
PIC32 MPLAB X 개발 후기 (0) | 2022.03.13 |
MP3 총 재생 시간 계산하기 (0) | 2022.01.24 |
펌웨어에서 FAT파일시스템의 확장자 구분 (0) | 2022.01.18 |
Helix MP3 Decoder 와 ID3 처리 (0) | 2022.01.18 |