2012-05-01 2 views

답변

20

나는 그것이 즉

(track.getPlaybackHeadPosition()/track.getSampleRate()) * 1000.0 

을 것 같은데요, 프레임 수는 초당 프레임 수로 나눈했다. 그런 다음 1000을 곱하여 밀리 초를 얻습니다.

프레임은 채널당 하나의 샘플로 구성되므로 샘플 속도와 동일해야합니다. 예를 들어

, getPlaybackHeadPosition() 경우 반환 8654getSampleRate() 반환 8000 다음 트랙의 시작 이후 시간이 (8654/8000) * 1000 또는 1081.75ms 될 것이다. (가정 부동 소수점 연산은)

+0

네, 맞습니다. –

+0

답을 받아들이면 자유롭게 답하십시오. 예를 들어 – Nick

+0

, 오디오에 8000 샘플/초 (track.getPlaybackHeadPosition()/8)가 있으면 밀리 초 단위로 현재 재생 헤드 위치를 알려줍니다. –

0

@Nike에 의한 대답은.

권리 그러나 문제가있다.

우리가 MediaExtractor.seekTo 방법, AudioTrack.getPlaybackHeadPosition() 반환 누적 값을 호출하는 경우.

MediaExtractor.getSampleTime()/1000입니다 현재 위치에 대한 오른쪽 ms.

당신이 그것을 확인할 수 있습니다!