android中的帧到毫秒转换

问题描述 投票:13回答:2

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

android audiotrack
2个回答
20
投票

我猜它会是

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

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

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

例如,如果getPlaybackHeadPosition( )返回8654并且getSampleRate( )返回8000,那么自赛道开始以来的时间将是( 8654 / 8000 ) * 10001081.75ms。 (假设浮点运算)


0
投票

@Nike的答案是对的。

但有个问题。

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

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

你可以看看!

© www.soinside.com 2019 - 2024. All rights reserved.