Androidでは、AudioTrackクラスのgetPlaybackHeadPosition()メソッドは、フレームで表された再生ヘッドの位置を返します。ミリ秒単位の同等の値は何ですか?
5399 次
2 に答える
21
だろうと思います
( track.getPlaybackHeadPosition( ) / track.getSampleRate( ) ) * 1000.0
つまり、再生されるフレーム数を1秒あたりのフレーム数で割った値です。次に、結果に1000を掛けて、ミリ秒を取得します。
フレームはチャネルごとに1つのサンプルで構成されるため、サンプルレートと同等である必要があります。
たとえば、getPlaybackHeadPosition( )
returns8654
とgetSampleRate( )
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 に答える