# RemoteConnection.VideoProvider

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

# VideoProvider

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/telecom/RemoteConnection.VideoProvider "View this page in Java")  

```
class VideoProvider
```

|---|--------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                                   ||
| ↳ | [android.telecom.RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#) |

[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#)associated with a[RemoteConnection](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection). Used to receive video related events and control the video associated with a[RemoteConnection](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection).

## Summary

|                                                                                                                                                                                                           Nested classes                                                                                                                                                                                                            ||
|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract | [Callback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback) Callback class used by the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#)to relay events from the[Connection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider). |

|                                                                                                                                                                                                                                                                                                                                                                  Public methods                                                                                                                                                                                                                                                                                                                                                                  ||
|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [registerCallback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#registerCallback(android.telecom.RemoteConnection.VideoProvider.Callback))`(`l:` `[RemoteConnection.VideoProvider.Callback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback)!`)` Registers a callback to receive commands and state changes for video calls.                                                                                                                                                                                                                           |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [requestCallDataUsage](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#requestCallDataUsage())`()` Issues a request to retrieve the data usage (in bytes) of the video portion of the[RemoteConnection](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection)for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).                                                                                                                                                                                 |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [requestCameraCapabilities](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#requestCameraCapabilities())`()` Issues a request to retrieve the capabilities of the current camera for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).                                                                                                                                                                                                                                                                                        |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [sendSessionModifyRequest](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#sendSessionModifyRequest(android.telecom.VideoProfile,%20android.telecom.VideoProfile))`(`fromProfile:` `[VideoProfile](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile)!`, `toProfile:` `[VideoProfile](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile)!`)` Issues a request to modify the properties of the current video session for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#). |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [sendSessionModifyResponse](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#sendSessionModifyResponse(android.telecom.VideoProfile))`(`responseProfile:` `[VideoProfile](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile)!`)` Provides a response to a request to change the current call video session properties for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).                                                                                                                          |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [setCamera](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#setCamera(kotlin.String))`(`cameraId:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!`)` Sets the camera to be used for the outgoing video for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).                                                                                                                                                                                                                              |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [setDeviceOrientation](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#setDeviceOrientation(kotlin.Int))`(`rotation:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Sets the device orientation, in degrees, for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).                                                                                                                                                                                                                           |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [setDisplaySurface](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#setDisplaySurface(android.view.Surface))`(`surface:` `[Surface](https://developer.android.com/reference/kotlin/android/view/Surface.html#)!`)` Sets the surface to be used for displaying the video received from the remote device for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).                                                                                                                                                                 |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [setPauseImage](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#setPauseImage(android.net.Uri))`(`uri:` `[Uri](https://developer.android.com/reference/kotlin/android/net/Uri.html#)!`)` Sets the[Uri](https://developer.android.com/reference/kotlin/android/net/Uri.html#)of an image to be displayed to the peer device when the video signal is paused, for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).                                                                                                             |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [setPreviewSurface](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#setPreviewSurface(android.view.Surface))`(`surface:` `[Surface](https://developer.android.com/reference/kotlin/android/view/Surface.html#)!`)` Sets the surface to be used for displaying a preview of what the user's camera is currently capturing for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).                                                                                                                                                |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [setZoom](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#setZoom(kotlin.Float))`(`value:` `[Float](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html)`)` Sets camera zoom ratio for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).                                                                                                                                                                                                                                                                    |
| open[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [unregisterCallback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#unregisterCallback(android.telecom.RemoteConnection.VideoProvider.Callback))`(`l:` `[RemoteConnection.VideoProvider.Callback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback)!`)` Clears the video call callback set via[registerCallback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#registerCallback(android.telecom.RemoteConnection.VideoProvider.Callback)).                                                                |

## Public methods

### registerCallback

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun registerCallback(l: RemoteConnection.VideoProvider.Callback!): Unit
```

Registers a callback to receive commands and state changes for video calls.

|                                                                                    Parameters                                                                                    ||
|-----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `l` | [RemoteConnection.VideoProvider.Callback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback)!:The video call callback. |

### requestCallDataUsage

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun requestCallDataUsage(): Unit
```

Issues a request to retrieve the data usage (in bytes) of the video portion of the[RemoteConnection](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection)for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).  
**See Also**

- [android.telecom.Connection.VideoProvider#onRequestConnectionDataUsage()](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onRequestConnectionDataUsage())  

### requestCameraCapabilities

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun requestCameraCapabilities(): Unit
```

Issues a request to retrieve the capabilities of the current camera for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).  
**See Also**

- [android.telecom.Connection.VideoProvider#onRequestCameraCapabilities()](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onRequestCameraCapabilities())  

### sendSessionModifyRequest

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun sendSessionModifyRequest(
    fromProfile: VideoProfile!, 
    toProfile: VideoProfile!
): Unit
```

Issues a request to modify the properties of the current video session for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).

|                                                                           Parameters                                                                           ||
|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
| `fromProfile` | [VideoProfile](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile)!:The video profile prior to the request.            |
| `toProfile`   | [VideoProfile](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile)!:The video profile with the requested changes made. |

**See Also**

- [android.telecom.Connection.VideoProvider#onSendSessionModifyRequest(VideoProfile, VideoProfile)](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onSendSessionModifyRequest(android.telecom.VideoProfile,%20android.telecom.VideoProfile))  

### sendSessionModifyResponse

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun sendSessionModifyResponse(responseProfile: VideoProfile!): Unit
```

Provides a response to a request to change the current call video session properties for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).

|                                                                     Parameters                                                                      ||
|-------------------|----------------------------------------------------------------------------------------------------------------------------------|
| `responseProfile` | [VideoProfile](https://developer.android.com/reference/kotlin/android/telecom/VideoProfile)!:The response call video properties. |

**See Also**

- [android.telecom.Connection.VideoProvider#onSendSessionModifyResponse(VideoProfile)](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onSendSessionModifyResponse(android.telecom.VideoProfile))  

### setCamera

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun setCamera(cameraId: String!): Unit
```

Sets the camera to be used for the outgoing video for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).

|                                                                                                                                         Parameters                                                                                                                                          ||
|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cameraId` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)!:The id of the camera (use ids as reported by[CameraManager.getCameraIdList()](https://developer.android.com/reference/kotlin/android/hardware/camera2/CameraManager.html#getCameraIdList())). |

**See Also**

- [android.telecom.Connection.VideoProvider#onSetCamera(String)](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onSetCamera(kotlin.String))  

### setDeviceOrientation

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun setDeviceOrientation(rotation: Int): Unit
```

Sets the device orientation, in degrees, for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#). Assumes that a standard portrait orientation of the device is 0 degrees.

|                                                         Parameters                                                         ||
|------------|----------------------------------------------------------------------------------------------------------------|
| `rotation` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):The device orientation, in degrees. |

**See Also**

- [android.telecom.Connection.VideoProvider#onSetDeviceOrientation(int)](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onSetDeviceOrientation(kotlin.Int))  

### setDisplaySurface

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun setDisplaySurface(surface: Surface!): Unit
```

Sets the surface to be used for displaying the video received from the remote device for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).

|                                                                                        Parameters                                                                                         ||
|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `surface` | [Surface](https://developer.android.com/reference/kotlin/android/view/Surface.html#)!:The[Surface](https://developer.android.com/reference/kotlin/android/view/Surface.html#). |

**See Also**

- [android.telecom.Connection.VideoProvider#onSetDisplaySurface(Surface)](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onSetDisplaySurface(android.view.Surface))  

### setPauseImage

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun setPauseImage(uri: Uri!): Unit
```

Sets the[Uri](https://developer.android.com/reference/kotlin/android/net/Uri.html#)of an image to be displayed to the peer device when the video signal is paused, for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).  
**See Also**

- [android.telecom.Connection.VideoProvider#onSetPauseImage(Uri)](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onSetPauseImage(android.net.Uri))  

### setPreviewSurface

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun setPreviewSurface(surface: Surface!): Unit
```

Sets the surface to be used for displaying a preview of what the user's camera is currently capturing for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).

|                                                                                        Parameters                                                                                         ||
|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `surface` | [Surface](https://developer.android.com/reference/kotlin/android/view/Surface.html#)!:The[Surface](https://developer.android.com/reference/kotlin/android/view/Surface.html#). |

**See Also**

- [android.telecom.Connection.VideoProvider#onSetPreviewSurface(Surface)](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onSetPreviewSurface(android.view.Surface))  

### setZoom

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun setZoom(value: Float): Unit
```

Sets camera zoom ratio for the[RemoteConnection.VideoProvider](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#).

|                                                   Parameters                                                   ||
|---------|-------------------------------------------------------------------------------------------------------|
| `value` | [Float](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html):The camera zoom ratio. |

**See Also**

- [android.telecom.Connection.VideoProvider#onSetZoom(float)](https://developer.android.com/reference/kotlin/android/telecom/Connection.VideoProvider#onSetZoom(kotlin.Float))  

### unregisterCallback

Added in[API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun unregisterCallback(l: RemoteConnection.VideoProvider.Callback!): Unit
```

Clears the video call callback set via[registerCallback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider#registerCallback(android.telecom.RemoteConnection.VideoProvider.Callback)).

|                                                                                        Parameters                                                                                         ||
|-----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `l` | [RemoteConnection.VideoProvider.Callback](https://developer.android.com/reference/kotlin/android/telecom/RemoteConnection.VideoProvider.Callback)!:The video call callback to clear. |