13

Androidでは、AudioTrackクラスのgetPlaybackHeadPosition()メソッドは、フレームで表された再生ヘッドの位置を返します。ミリ秒単位の同等の値は何ですか?

4

2 に答える 2

21

だろうと思います

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

つまり、再生されるフレーム数を1秒あたりのフレーム数で割った値です。次に、結果に1000を掛けて、ミリ秒を取得します。

フレームはチャネルごとに1つのサンプルで構成されるため、サンプルレートと同等である必要があります。

たとえば、getPlaybackHeadPosition( )returns8654getSampleRate( )returnsの場合8000、トラックの開始からの時間は( 8654 / 8000 ) * 1000またはになり1081.75msます。(浮動小数点演算を想定)

于 2012-05-01T10:06:38.657 に答える
0

@Nikeの答えは正しいです。</p>

しかし、問題があります。</ p>

MediaExtractor.seekToメソッドを呼び出すと、AudioTrack.getPlaybackHeadPosition()累積値が返されます。</ p>

MediaExtractor.getSampleTime() / 1000現在の位置の正しいミリ秒です。

あなたはそれをチェックすることができます!

于 2017-12-20T08:32:31.193 に答える