2015-11-12 10 views
8

questionは、AudioTrackを使用して、Android上で信頼性の高い正確なメトロノームを作成できると述べています。 MediaPlayerSoundPoolThreadTimerも使用できますが、それらは常に遅延の原因となります。 AudioTrackを使用して合成音を生成する代わりに、カスタムオーディオファイルを使用して同じ効果をどのように達成できますか?正確なメトロノームfor Android

答えて

4

System.nanoTime()を使用して独自のタイムカウンターを作成することができます。精度が必要な場合は、常にこれを使用できます。

public static long nanoTime()

ナノ秒で、最も正確な 利用可能なシステムタイマーの現在の値を返します。この方法では、経過時間を測定するのに しか使用できず、 というシステムまたはウォールクロック時間の他の概念とは関係ありません。返される値は固定されているが任意の時間(おそらく の将来の値であるため、値が負である可能性があるため)から ナノ秒を表します。このメソッドはナノ秒精度を提供しますが、必ずしもナノ秒精度である必要はありません。値の変更頻度については、 という保証はありません。約292年(263ナノ秒)を超える連続する コールの違い は、数値のオーバーフローによる経過時間を正確に計算しません。例えば

、いくつかのコードの実行にかかる時間を測定する:

長のstartTime = System.nanoTimeの()。 // ...コードが の場合... long estimatedTime = System.nanoTime() - startTime;
戻り値:システム・タイマーの現在の値(ナノ秒単位)。導入されたバージョン: 1.5

出典:

Oracleドキュメントhttps://docs.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#nanoTime()