android中的帧到毫秒转换

时间:2012-05-01 09:44:06

标签: android audiotrack

在Android中,getPlaybackHeadPosition类的AudioTrack()方法返回以帧表示的播放头位置,以毫秒为单位的等效值是什么?

2 个答案:

答案 0 :(得分:20)

我猜它会是

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

换句话说,播放的帧数除以每秒的帧数。然后,将结果乘以1000得到毫秒。

一个帧由每个通道一个样本组成,因此应该等同于采样率。

例如,如果getPlaybackHeadPosition( )返回8654getSampleRate( )返回8000,那么自跟踪开始以来的时间将为( 8654 / 8000 ) * 1000或{{1 }}。 (假设浮点运算)

答案 1 :(得分:0)

@Nike的答案是对的。

但是有一个问题。

如果我们调用MediaExtractor.seekTo方法,AudioTrack.getPlaybackHeadPosition()会返回累积值。

MediaExtractor.getSampleTime() / 1000是当前位置的正确ms。

你可以查看一下!