audioRecorderService static method

String audioRecorderService()

Implementation

static String audioRecorderService() {
  return '''
import 'package:flutter/foundation.dart';
import 'package:path_provider/path_provider.dart';
import 'package:record/record.dart';

/// Simple audio recorder wrapper.
///
/// Usage:
/// final recorder = AudioRecorderService();
/// await recorder.startRecording();
/// final path = await recorder.stopRecording();
class AudioRecorderService {
final AudioRecorder _record = AudioRecorder();

Future<bool> hasPermission() async {
  return await _record.hasPermission();
}

Future<void> startRecording() async {
  if (!await hasPermission()) return;

  final dir = await getTemporaryDirectory();
  final filePath =
      '\${dir.path}/recording_\${DateTime.now().millisecondsSinceEpoch}.m4a';

  await _record.start(
    RecordConfig(
      encoder: AudioEncoder.aacLc,
      bitRate: 128000,
      sampleRate: 44100,
    ),
    path: filePath,
  );
}

Future<String?> stopRecording() async {
  try {
    final path = await _record.stop();
    if (kDebugMode) {
      debugPrint('Recorded file: \$path');
    }
    return path;
  } catch (e) {
    if (kDebugMode) {
      debugPrint('Stop recording error: \$e');
    }
    return null;
  }
}

Future<void> dispose() async {
  await _record.dispose();
}
}
''';
}