【发布时间】:2012-05-01 09:44:05
【问题描述】:
在Android中AudioTrack类的getPlaybackHeadPosition()方法返回播放头位置以帧表示,它的等效值是多少毫秒?
【问题讨论】:
标签: android audiotrack
在Android中AudioTrack类的getPlaybackHeadPosition()方法返回播放头位置以帧表示,它的等效值是多少毫秒?
【问题讨论】:
标签: android 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 是当前位置的正确毫秒数。
你可以去看看!
【讨论】: