# Class: AudioInterface

## Constructor

#### new AudioInterface(inputInterface, outputInterface)

  AudioInterface class provides functionality for managing the audio device that is used by the user.
  It allows to access to either the audio input interface (microphone) or the audio output interface (headphones).

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `inputInterface` | AvayaClientServices.Base.AudioInputInterface |
  `outputInterface` | AvayaClientServices.Base.AudioOutputInterface |

## Methods

#### getAvailableDevices() → {Array.<AvayaClientServices.Base.VideoDevice>|Array.<AvayaClientServices.Base.AudioDevice>}

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#getAvailableDevices

  ##### Returns:

  { Array.<AvayaClientServices.Base.VideoDevice> | Array.<AvayaClientServices.Base.AudioDevice> }

#### getInputInterface() → {AvayaClientServices.Base.AudioInputInterface}

  Returns the input interface for the audio device which is used by the user.

  ##### Returns:

  { AvayaClientServices.Base.AudioInputInterface }

#### getLocalMediaStream(callId) → {MediaStream}

  Returns the local MediaStream associated with the callId.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callId` | string | ID of the call.

  ##### Returns:

  { MediaStream }

#### getMediaAccessCapability() → {AvayaClientServices.Base.Capability}

  The function returns capability to perform media access.

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#getMediaAccessCapability

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getOutputInterface() → {AvayaClientServices.Base.AudioOutputInterface}

  Returns the output interface for the audio device which is used by the user.

  ##### Returns:

  { AvayaClientServices.Base.AudioOutputInterface }

#### getRemoteMediaStream(callId) → {MediaStream}

  Returns the remote MediaStream associated with the callId.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callId` | string | ID of the call.

  ##### Returns:

  { MediaStream }

#### getSelectDeviceCapability() → {AvayaClientServices.Base.Capability}

  The function returns capability to select device.

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#getSelectDeviceCapability

  ##### Returns:

  { AvayaClientServices.Base.Capability }

#### getSelectedDevice() → {AvayaClientServices.Base.VideoDevice}

  The function gets the selected capture device for video.

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#getSelectedDevice

  ##### Returns:

  { AvayaClientServices.Base.VideoDevice }

#### hasAvailableDevices() → {boolean}

  Returns a boolean indicating if devices of this type exists. This method
  will work prior to the user granting access to the mic/camera media stream.

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#hasAvailableDevices

  ##### Returns:

  { boolean }

#### setSelectedDevice(device)

  The function sets the capture device for video. This will not affect any active video sessions.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `device` | AvayaClientServices.Base.VideoDevice | AvayaClientServices.Base.AudioDevice |

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#setSelectedDevice

#### start() → {AvayaClientServices.Base.Promise.<(undefined|undefined)>}

  Starts audio interface.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(undefined|undefined)> }

#### stop() → {AvayaClientServices.Base.Promise.<(undefined|undefined)>}

  Stop audio interface.

  ##### Returns:

  { AvayaClientServices.Base.Promise.<(undefined|undefined)> }

### Managing callbacks

#### addOnDevicesAddedCallback(callback) → {void}

  Add callback on specific event

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onDevicesAddedCallback | Function to be called

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#addOnDevicesAddedCallback

  ##### Returns:

  { void }

#### addOnDevicesRemovedCallback(callback) → {void}

  Add callback on specific event

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onDevicesRemovedCallback | Function to be called

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#addOnDevicesRemovedCallback

  ##### Returns:

  { void }

#### addOnDevicesUnavailableCallback(callback) → {void}

  Add callback on specific event

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onDevicesUnavailableCallback | Function to be called

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#addOnDevicesUnavailableCallback

  ##### Returns:

  { void }

#### addOnSelectedDeviceChangedCallback(callback) → {void}

  Add callback on specific event

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onSelectedDeviceChanged | Function to be called

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#addOnSelectedDeviceChangedCallback

  ##### Returns:

  { void }

#### addOnSelectedDeviceRemovedCallback(callback) → {void}

  Add callback on specific event

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onSelectedDeviceRemovedCallback | Function to be called

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#addOnSelectedDeviceRemovedCallback

  ##### Returns:

  { void }

#### cleanUpOnDevicesAddedCallbacks() → {void}

  Removes all previously added callbacks

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#cleanUpOnDevicesAddedCallbacks

  ##### Returns:

  { void }

#### cleanUpOnDevicesRemovedCallbacks() → {void}

  Removes all previously added callbacks

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#cleanUpOnDevicesRemovedCallbacks

  ##### Returns:

  { void }

#### cleanUpOnDevicesUnavailableCallbacks() → {void}

  Removes all previously added callbacks

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#cleanUpOnDevicesUnavailableCallbacks

  ##### Returns:

  { void }

#### cleanUpOnDevicesUpdatedCallbacks() → {void}

  Removes all previously added callbacks

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#cleanUpOnDevicesUpdatedCallbacks

  ##### Returns:

  { void }

#### cleanUpOnSelectedDeviceChangedCallbacks() → {void}

  Removes all previously added callbacks

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#cleanUpOnSelectedDeviceChangedCallbacks

  ##### Returns:

  { void }

#### cleanUpOnSelectedDeviceRemovedCallbacks() → {void}

  Removes all previously added callbacks

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#cleanUpOnSelectedDeviceRemovedCallbacks

  ##### Returns:

  { void }

#### removeOnDevicesAddedCallback(callback) → {void}

  Remove previously added callback

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onDevicesAddedCallback | Function to be removed

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#removeOnDevicesAddedCallback

  ##### Returns:

  { void }

#### removeOnDevicesRemovedCallback(callback) → {void}

  Remove previously added callback

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onDevicesRemovedCallback | Function to be removed

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#removeOnDevicesRemovedCallback

  ##### Returns:

  { void }

#### removeOnDevicesUnavailableCallback(callback) → {void}

  Remove previously added callback

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onDevicesUnavailableCallback | Function to be removed

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#removeOnDevicesUnavailableCallback

  ##### Returns:

  { void }

#### removeOnDevicesUpdatedCallback(callback) → {void}

  Remove previously added callback

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#addOnDevicesUpdatedCallback | Function to be removed

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#removeOnDevicesUpdatedCallback

  ##### Returns:

  { void }

#### removeOnSelectedDeviceChangedCallback(callback) → {void}

  Remove previously added callback

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onSelectedDeviceChanged | Function to be removed

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#removeOnSelectedDeviceChangedCallback

  ##### Returns:

  { void }

#### removeOnSelectedDeviceRemovedCallback(callback) → {void}

  Remove previously added callback

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | AvayaClientServices.Base.MediaInterface#onSelectedDeviceRemovedCallback | Function to be removed

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#removeOnSelectedDeviceRemovedCallback

  ##### Returns:

  { void }

## Type Definitions

#### addOnDevicesUpdatedCallback(mediaInterface, devices) → {void}

  Called to report that audio or video devices label were updated

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mediaInterface` | AvayaClientServices.Base.MediaInterface |
  `devices` | Array.<AvayaClientServices.Base.VideoDevice> | Array.<AvayaClientServices.Base.AudioDevice> |

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#addOnDevicesUpdatedCallback

  ##### Returns:

  { void }

#### onDevicesAddedCallback(mediaInterface, devices) → {void}

  Called to report that audio or video devices were added

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mediaInterface` | AvayaClientServices.Base.MediaInterface |
  `devices` | Array.<AvayaClientServices.Base.VideoDevice> | Array.<AvayaClientServices.Base.AudioDevice> |

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#onDevicesAddedCallback

  ##### Returns:

  { void }

#### onDevicesRemovedCallback(mediaInterface, devices) → {void}

  Called to report that audio or video devices were removed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mediaInterface` | AvayaClientServices.Base.MediaInterface |
  `devices` | Array.<AvayaClientServices.Base.VideoDevice> | Array.<AvayaClientServices.Base.AudioDevice> |

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#onDevicesRemovedCallback

  ##### Returns:

  { void }

#### onDevicesUnavailableCallback(mediaInterface) → {void}

  Called to report that no device is available

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mediaInterface` | AvayaClientServices.Base.MediaInterface |

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#onDevicesUnavailableCallback

  ##### Returns:

  { void }

#### onSelectedDeviceChanged(mediaInterface, device) → {void}

  Called to report that device was changed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mediaInterface` | AvayaClientServices.Base.MediaInterface |
  `device` | AvayaClientServices.Base.AudioDevice | AvayaClientServices.Base.VideoDevice |

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#onSelectedDeviceChanged

  ##### Returns:

  { void }

#### onSelectedDeviceRemovedCallback(mediaInterface, device) → {void}

  Called to report that selected device was removed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `mediaInterface` | AvayaClientServices.Base.MediaInterface |
  `device` | AvayaClientServices.Base.VideoDevice | AvayaClientServices.Base.AudioDevice |

  Inherited From:
    - AvayaClientServices.Base.MediaInterface#onSelectedDeviceRemovedCallback

  ##### Returns:

  { void }