amazon-chime-sdk / com.amazonaws.services.chime.sdk.meetings.device / DefaultDeviceController

# DefaultDeviceController

`class DefaultDeviceController : DeviceController`

### Constructors

#### <init> | `DefaultDeviceController(context: Context, audioClientController: AudioClientController, videoClientController: VideoClientController, eventAnalyticsController: EventAnalyticsController, audioManager: AudioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager, buildVersion: Int = Build.VERSION.SDK_INT)`

### Functions

#### addDeviceChangeObserver | Adds an observer to receive callbacks about device changes. `fun addDeviceChangeObserver(observer: DeviceChangeObserver): Unit`
#### chooseAudioDevice | Selects an audio device to use. `fun chooseAudioDevice(mediaDevice: MediaDevice): Unit`
#### getActiveAudioDevice | Get the active input/output audio device in the meeting, return null if there isn't any. `fun getActiveAudioDevice(): MediaDevice?`
#### getActiveCamera | Get the currently active camera, if any. This will return null if using a custom source, e.g. one passed in via AudioVideoControllerFacade.startLocalVideo `fun getActiveCamera(): MediaDevice?`
#### listAudioDevices | Lists currently available audio devices. `fun listAudioDevices(): List<MediaDevice>`
#### notifyAudioDeviceChange | `fun notifyAudioDeviceChange(): Unit`
#### removeDeviceChangeObserver | Removes an observer to stop receiving callbacks about device changes. `fun removeDeviceChangeObserver(observer: DeviceChangeObserver): Unit`
#### switchCamera | Switches the currently active camera. This will no-op if using a custom source, e.g. one passed in via AudioVideoControllerFacade.startLocalVideo `fun switchCamera(): Unit`