@override Future<void> dispose() async { if (isDisposed) return; isDisposed = true; _isRecording.dispose(); _recordedDuration.dispose(); }