在Android中,getPlaybackHeadPosition类的AudioTrack()方法返回以帧表示的播放头位置,以毫秒为单位的等效值是多少?
我猜它会是
( track.getPlaybackHeadPosition( ) / track.getSampleRate( ) ) * 1000.0
换句话说,播放的帧数除以每秒的帧数。然后将结果乘以1000得到毫秒。
帧由每个通道一个样本组成,因此应该等于采样率。
例如,如果getPlaybackHeadPosition( )
返回8654
并且getSampleRate( )
返回8000
,那么自赛道开始以来的时间将是( 8654 / 8000 ) * 1000
或1081.75ms
。 (假设浮点运算)
@Nike的答案是对的。
但有个问题。
如果我们调用MediaExtractor.seekTo
方法,AudioTrack.getPlaybackHeadPosition()
返回累积值。
MediaExtractor.getSampleTime() / 1000
是当前位置的正确ms。
你可以看看!