# Class MediaRecorderBuilder

java.lang.Object
com.codename1.media.MediaRecorderBuilder

public class MediaRecorderBuilder extends Object
A builder class to generate a Media recorder with specific settings.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MediaRecorderBuilder()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `MediaRecorderBuilder`
  `audioChannels(int numChannels)`
  Set the number of audio channels in the media recorder.
  `MediaRecorderBuilder`
  `bitRate(int bitRate)`
  Sets the bit rate for the recorder.
  `Media`
  `build()`
  Builds the MediaRecorder with the given settings.
  `int`
  `getAudioChannels()`
  Gets the current audio channels settings.
  `int`
  `getBitRate()`
  Gets the current bit rate.
  `String`
  `getMimeType()`
  Gets the current mimetype.
  `String`
  `getPath()`
  Gets the current output path.
  `int`
  `getSamplingRate()`
  Gets the current sampling rate.
  `boolean`
  `isRedirectToAudioBuffer()`
  True if the media recorder should redirect output to an audio buffer instead of a file.
  `MediaRecorderBuilder`
  `mimeType(String mimeType)`
  Sets the mimetype to use for encoding the audio file.
  `MediaRecorderBuilder`
  `path(String path)`
  Sets the output path where the audio recording should be saved.
  `MediaRecorderBuilder`
  `redirectToAudioBuffer(boolean redirect)`
  Set this flag to true to redirect the microphone input to an audio buffer.
  `MediaRecorderBuilder`
  `samplingRate(int samplingRate)`
  Sets the sampling rate for the recorder.

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MediaRecorderBuilder

    public MediaRecorderBuilder()

- ## Method Details

  - ### audioChannels

    public MediaRecorderBuilder audioChannels(int numChannels)

    Set the number of audio channels in the media recorder. Default 1.

    ###### Parameters

    - `numChannels`: The number of audio channels in the media recorder.

    ###### Returns

    Self for chaining

  - ### bitRate

    public MediaRecorderBuilder bitRate(int bitRate)

    Sets the bit rate for the recorder. Default 64000.

    ###### Parameters

    - `bitRate`: The bit rate for the recorder.

    ###### Returns

    Self for chaining.

  - ### samplingRate

    public MediaRecorderBuilder samplingRate(int samplingRate)

    Sets the sampling rate for the recorder. Default 44100

    ###### Parameters

    - `samplingRate`: The sample rate for the recorder.

    ###### Returns

    Self for chaining.

  - ### mimeType

    public MediaRecorderBuilder mimeType(String mimeType)

    Sets the mimetype to use for encoding the audio file.

    ###### Parameters

    - `mimeType`: The mimetype to use for encoding the audio file.

    ###### Returns

    Self for chaining.

    ###### See also

    - MediaManager#getAvailableRecordingMimeTypes()

  - ### path

    public MediaRecorderBuilder path(String path)

    Sets the output path where the audio recording should be saved.

    ###### Parameters

    - `path`: @param path The output path where the recording should be saved as a `com.codename1.io.FileSystemStorage` path

    ###### Returns

    Self for chaining.

  - ### redirectToAudioBuffer

    public MediaRecorderBuilder redirectToAudioBuffer(boolean redirect)

    Set this flag to true to redirect the microphone input to an audio buffer. This is handy if you just want to capture the raw PCM data from the microphone.

    ###### Parameters

    - `redirect`: @param redirect True to redirect output to an audio buffer. The `#path(java.lang.String)` parameter would then be used as the path to the audio buffer instead of the output file.

    ###### Returns

    Self for chaining.

  - ### build

    public Media build() throws IOException

    Builds the MediaRecorder with the given settings.

    ###### Throws

    - `IOException`

    - `IllegalStateException`: If `#path(java.lang.String)` is not set.

    Throws:
      `IOException`

  - ### getAudioChannels

    public int getAudioChannels()

    Gets the current audio channels settings.

    ###### Returns

    the audioChannels

  - ### getBitRate

    public int getBitRate()

    Gets the current bit rate.

    ###### Returns

    the bitRate

  - ### getSamplingRate

    public int getSamplingRate()

    Gets the current sampling rate.

    ###### Returns

    the samplingRate

  - ### getMimeType

    public String getMimeType()

    Gets the current mimetype.

    ###### Returns

    the mimeType

  - ### getPath

    public String getPath()

    Gets the current output path.

    ###### Returns

    the path

  - ### isRedirectToAudioBuffer

    public boolean isRedirectToAudioBuffer()
    True if the media recorder should redirect output to an audio buffer instead of a file.