@override Future<void> play() async { if (_isPlaying) return; _isPlaying = true; _currentTick = 0; startScheduler(); }