Die Antwort auf diese question besagt, dass wir ein zuverlässiges und präzises Metronom auf Android mit AudioTrack
machen können. Wir können MediaPlayer
, SoundPool
, Thread
und Timer
auch verwenden, aber sie verursachen immer eine Verzögerung. Wie können wir anstelle eines synthetisierten Sounds mit AudioTrack
den gleichen Effekt mit benutzerdefinierten Audiodateien erzielen?Präzise Metronom für Android
Antwort
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 höchstwertigen präzisen verfügbaren System-Timer, in Nanosekunden. Diese Methode kann nur verwendet werden, um die verstrichene Zeit zu messen und steht nicht im Zusammenhang mit einem anderen Begriff der System- oder Wanduhrzeit. Der zurückgegebene Wert repräsentiert Nanosekunden seit einigen festen, aber beliebigen Zeit (vielleicht in der Zukunft, so dass die Werte negativ sein können). Diese Methode liefert eine Genauigkeit im Nanosekundenbereich von , aber nicht notwendigerweise eine Genauigkeit im Nanosekundenbereich. Es werden keine Garantien darüber gemacht, wie häufig sich Werte ändern. Unterschiede in aufeinanderfolgenden Aufrufen , die sich über mehr als ungefähr 292 Jahre (263 Nanosekunden) erstrecken, werden die abgelaufene Zeit aufgrund eines numerischen Überlaufs nicht genau berechnen.
Zum Beispiel zu messen, wie lange einige Code auszuführen nehmen:
lange Startzeit = System.nanoTime(); // ... der Code wird gemessen ... lang geschätztTime = System.nanoTime() - startTime;
Rückgabewert: Der aktuelle Wert des Systemzeitgebers in Nanosekunden. Seit: 1,5
Quelle:
Oracle Dokumentation https://docs.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#nanoTime()
- 1. Präzise Positionierung in Android
- 2. Synchronisieren AudioTrack Streaming mit UI für Metronom
- 3. HTML5/jQuery Metronom - Leistungsprobleme
- 4. Präzise Positionierung von Markern für lat/lon
- 5. JavaScript Multiplizieren nicht präzise
- 6. definieren präzise Größe Speicherstrukturen
- 7. NSTimer nicht präzise genug
- 8. Präzise Tonbeginn/Dauermessung?
- 9. Wie präzise ist Bewegung mit Beschleunigungsmesser-Android Tracking?
- 10. Präzise Zugriff auf VB6 Einschränkungen
- 11. Präzise Kontrolle über Androiden VectorDrawable Animationen
- 12. Präzise Erkennung mouseover Ereignis für ein div mit abgerundeten Ecken
- 13. Präzise Fließkomma <-> String-Konvertierung
- 14. Wie verketten Sie Strings in Tcl präzise?
- 15. Wie präzise CPU-Auslastung in Hintergrundaufgaben messen?
- 16. Präzise Browsererkennung/-weiterleitung mit JavaScript möglich?
- 17. Präzise Kontrolle über Textur-Bits in GLSL
- 18. Präzise Messung der verstrichenen Wanduhrzeit in .NET
- 19. .NET/Entity Framework - System.Data.UpdateException nicht präzise genug?
- 20. Unterschied zwischen/fp: strict und/fp: präzise?
- 21. Verwenden von AVAudioEngine zum Planen von Sounds für Metronom mit niedriger Latenz
- 22. Suche nach Latlng innerhalb von Polygon ist nicht präzise
- 23. Alternative für String.join in Android?
- 24. Ist Erlang aus der Perspektive eines Programmierers eine präzise Sprache?
- 25. Wie erstellt man ein XML-Dokument in Java präzise?
- 26. Wie kann man die Linienstärke im MATLAB-Plot präzise steuern?
- 27. Warum sind die mathematischen Berechnungen in Java nicht präzise?
- 28. Wie man mehrere Regex-Anweisungen in Python präzise kaskadiert
- 29. Android: Radio Buttons für Navigation
- 30. Präzise Bedeutung und Auswirkungen von flüchtigen in Java?