Präzises Metronom für Android

8

Die Antwort auf diese Frage besagt, dass wir eine zuverlässige und präzises Metronom auf Android mit AudioTrack . Wir können auch MediaPlayer , SoundPool , Thread und Timer verwenden, aber sie verursachen immer eine Verzögerung. Anstatt einen synthetisierten Sound mit AudioTrack zu erzeugen, wie können wir denselben Effekt mit benutzerdefinierten Audiodateien erzielen?

    
cw fei 12.11.2015, 02:32
quelle

1 Antwort

4

Sie können versuchen, Ihren eigenen Zeitzähler mit System.nanoTime() zu erstellen, wenn Sie Präzision benötigen, können Sie dies immer verwenden.

  

public static long nanoTime()

     

Gibt den aktuellen Wert der meisten zurück   präzise verfügbarer Systemzeitgeber in Nanosekunden. Diese Methode kann nur   verwendet werden, um die verstrichene Zeit zu messen, und steht in keinem Zusammenhang mit anderen Begriffen   der System- oder Wanduhrzeit. Der zurückgegebene Wert repräsentiert   Nanosekunden seit einer bestimmten, aber beliebigen Zeit (vielleicht in der   Zukunft, also Werte können negativ sein). Diese Methode liefert Nanosekunden   Präzision, aber nicht notwendigerweise Genauigkeit im Nanosekundenbereich. Keine Garantien sind   darüber gemacht, wie häufig sich Werte ändern. Unterschiede in aufeinanderfolgenden   Anrufe, die mehr als etwa 292 Jahre (263 Nanosekunden) umfassen   berechnet die abgelaufene Zeit aufgrund eines numerischen Überlaufs nicht genau.

     

Zum Beispiel, um zu messen, wie lange ein Code zur Ausführung benötigt:

     

lang startTime = System.nanoTime (); // ... der Code ist   gemessen ... lang geschätztTime = System.nanoTime () - startTime;
  Rückgabewert: Der aktuelle Wert des Systemzeitgebers in Nanosekunden. Schon seit:   1.5

Quelle:

Oracle-Dokumentation Ссылка

    
Alberto Anderick Jr 17.11.2015 22:13
quelle

Tags und Links