didvan-app/lib/pages/home/direct/direct_state.dart

53 lines
1.1 KiB
Dart

import 'dart:io';
import 'package:didvan/providers/core_provider.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_vibrate/flutter_vibrate.dart';
import 'package:record/record.dart';
class DirectState extends CoreProvier {
final _recorder = Record();
File? recordedFile;
bool isRecording = false;
void deleteRecordedFile() {
recordedFile!.delete();
recordedFile = null;
notifyListeners();
}
Future<void> startRecording() async {
await _recorder.hasPermission();
if (!kIsWeb) {
Vibrate.feedback(FeedbackType.medium);
}
isRecording = true;
_recorder.start();
notifyListeners();
}
Future<void> stopRecording(bool sendImidiately) async {
final path = await _recorder.stop();
isRecording = false;
if (path == null) {
notifyListeners();
return;
}
if (kIsWeb) {
final uri = Uri.file(path);
recordedFile = File.fromUri(uri);
} else {
recordedFile = File(path);
}
if (sendImidiately) {
await sendMessage();
} else {
notifyListeners();
}
}
Future<void> sendMessage() async {}
}