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