Этот вопрос похож на Flutter AudioPlayers или отставание метронома
Однако этот вопрос значительно устарел без каких-либо значимых ответов.
I 'я пишу приложения Flutter почти два года, но я все еще не лучший в этом. Недавно я работал над метрономом, и хотя Flutter довольно быстр, я не получаю очень точные значения времени в моем метрономе.
Мой код доступен здесь:
https://github.com/jeffmikels/jeff_metronome_flutter
В настоящее время я запускаю периодический таймер каждые 10 миллисекунд, когда работает метроном, и, если пришло время сыграть удар, я играю удар и звоню setState()
.
На самом деле, я называю setState()
ЛОТОМ, потому что у меня также запущены некоторые анимации, но я не думаю, что это может быть слишком сложным.
Я предполагаю, что производительность плохая, потому что я 'я перерисовываю все дерево виджетов 60 раз в секунду или более, но получу ли я лучшую производительность, если я изменю различные анимирующие компоненты на виджеты StreamBuilder? Есть ли лучший способ получить точные значения времени в фоновом режиме и при этом иметь эффективный пользовательский интерфейс?