# FlutterSoundRecorder class

A Recorder is an object that can record to various destinations.

The Recorder class can have multiple instances at the same time. Each instance is used to control its own destination.

The destinations possible can be:

- A file
- A dart stream

Using a recorder is very simple :

1. Create a new `FlutterSoundRecorder`

2. Open it with openRecorder()

3. Start your recording with startRecorder().

4. Use the various verbs (optional):

   - pauseRecorder()
   - resumeRecorder()
   - ...

5. Stop your recorder : stopRecorder()

6. Release your recorder when you have finished with it : closeRecorder(). This verb will call stopRecorder() if necessary.

Recorder States

If you are new to Flutter Sound, you may have a look to this little guide

## Constructors

FlutterSoundRecorder.new({Level logLevel = Level.debug})
  Instanciate a new Flutter Sound Recorder.

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
isPaused → bool
  True if `recorderState.isPaused`
  no setter
isRecording → bool
  True if `recorderState.isRecording`
  no setter
isStopped → bool
  True if `recorderState.isStopped`
  no setter
logger → Logger
  The getter of the FlutterSoundRecorder Logger
  no setter
onProgress → Stream<RecordingDisposition>?
  A stream on which FlutterSound will post the recorder progression.
  no setter
recorderState → RecorderState
  The current state of the Recorder
  no setter
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

closeRecorder() → Future<void>
  Close a Recorder
deleteRecord({required String fileName}) → Future<bool?>
  Delete a temporary file
getRecordURL({required String path}) → Future<String?>
  Get the URI of a recorded file.
getSubscriptionDuration() → Duration
  Returns the current Subscription Duration
isEncoderSupported(Codec codec) → Future<bool>
  Returns true if the specified encoder is supported by flutter_sound on this platform.
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
openRecorder({dynamic isBGService = false}) → Future<FlutterSoundRecorder?>
  Open a Recorder
pauseRecorder() → Future<void>
  Pause the recorder
resumeRecorder() → Future<void>
  Resume a paused Recorder
setLogLevel(Level aLevel) → void
  Used if the App wants to dynamically change the Log Level.
setSubscriptionDuration(Duration duration) → Future<void>
  Sets the frequency at which duration updates are sent to duration listeners.
startRecorder({Codec codec = Codec.defaultCodec, String? toFile, StreamSink<List<Float32List>>? toStreamFloat32, StreamSink<List<Int16List>>? toStreamInt16, StreamSink<Uint8List>? toStream, int? sampleRate, int numChannels = 1, int bitRate = 16000, int bufferSize = 8192, bool enableVoiceProcessing = false, AudioSource audioSource = AudioSource.defaultSource, bool enableNoiseSuppression = false, bool enableEchoCancellation = true}) → Future<void>
  `startRecorder()` starts recording a recorder.
stopRecorder() → Future<String?>
  Stop a recorder.
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited