Question

In Android the getPlaybackHeadPosition() method of AudioTrack class returns the playback head position expressed in frames ,what is its equivalent value in milli seconds?

Was it helpful?

Solution

I'm guessing that it would be

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

In other words, the number of frames played divided by the number of frames per second. You then multiply the result by 1000 to get milliseconds.

A frame consists of one sample per channel and so should be equivalent to sample rate.

For example, if getPlaybackHeadPosition( ) returns 8654 and getSampleRate( ) returns 8000 then the time since the start of the track would be ( 8654 / 8000 ) * 1000 or 1081.75ms. (Assuming floating point arithmetic)

OTHER TIPS

The answer by @Nike is right。

But there is a problem。

If we call the MediaExtractor.seekTo method, AudioTrack.getPlaybackHeadPosition() returns accumulate value。

MediaExtractor.getSampleTime() / 1000 is the right ms for current position.

You can check it out!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top