startRecorder method

  1. @override
Future<void> startRecorder(
  1. FlutterSoundRecorderCallback callback, {
  2. Codec? codec,
  3. String? path,
  4. int sampleRate = 44100,
  5. int numChannels = 1,
  6. int bitRate = 16000,
  7. int bufferSize = 8192,
  8. Duration timeSlice = Duration.zero,
  9. bool enableVoiceProcessing = false,
  10. bool interleaved = true,
  11. required bool toStream,
  12. AudioSource? audioSource,
  13. bool enableNoiseSuppression = false,
  14. bool enableEchoCancellation = true,
})
override

Implementation

@override
Future<void> startRecorder(
  FlutterSoundRecorderCallback callback, {
  Codec? codec,
  String? path,
  int sampleRate = 44100,
  int numChannels = 1,
  int bitRate = 16000,
  int bufferSize = 8192,
  Duration timeSlice = Duration.zero,
  bool enableVoiceProcessing = false,
  bool interleaved = true,
  required bool toStream,
  AudioSource? audioSource,
  bool enableNoiseSuppression = false,
  bool enableEchoCancellation = true,
}) async {
  _mediaRecorderWeb = null;

  if (toStream) {
    _mediaRecorderWeb = FlutterSoundMediaRecorderWeb();
    return _mediaRecorderWeb!.startRecorderToStream(
      callback,
      codec: codec!,
      //toStream: toStream,
      audioSource: audioSource,
      timeSlice: timeSlice,
      sampleRate: sampleRate,
      numChannels: numChannels,
      bufferSize: bufferSize,
      interleaved: interleaved,
    );
  } else {
    assert(codec != Codec.pcmFloat32 && codec != Codec.pcm16);
    getWebSession(callback)!.startRecorder(
      path,
      sampleRate,
      numChannels,
      bitRate,
      bufferSize,
      enableVoiceProcessing,
      codec!.index,
      toStream,
      audioSource!.index,
    );
  }
}