Most visited

Recently visited

Added in API level 23

Connection.VideoProvider

public static abstract class Connection.VideoProvider
extends Object

java.lang.Object
   ↳ android.telecom.Connection.VideoProvider


提供了一种控制与 Connection相关的视频会话的 Connection

实现创建一个自定义子类Connection.VideoProviderConnectionService创建一个实例并将其设置在上Connection使用setVideoProvider(VideoProvider) 任何支持视频的连接都应该设置为Connection.VideoProvider

Connection.VideoProvider两个主要用途:它为电信和InCallService实现提供了一种方法来发出与视频会话相关的请求; 它为ConnectionService向电信和InCallService实现报告与视频会话有关的事件和信息提供了一种手段。

InCallService实现通过 InCallService.VideoCallConnection.VideoProvider InCallService.VideoCall

Summary

Constants

int SESSION_EVENT_CAMERA_FAILURE

所选相机发生相机故障。

int SESSION_EVENT_CAMERA_READY

当相机再次准备好操作时,在 SESSION_EVENT_CAMERA_FAILURE之后发布。

int SESSION_EVENT_RX_PAUSE

没有收到视频(没有发布协议暂停)。

int SESSION_EVENT_RX_RESUME

视频接收已经在 SESSION_EVENT_RX_PAUSE后恢复。

int SESSION_EVENT_TX_START

视频传输已经开始。

int SESSION_EVENT_TX_STOP

视频传输已停止。

int SESSION_MODIFY_REQUEST_FAIL

会话修改请求失败。

int SESSION_MODIFY_REQUEST_INVALID

会话修改请求由于参数无效而被忽略。

int SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE

会话修改请求被远程用户拒绝。

int SESSION_MODIFY_REQUEST_SUCCESS

会话修改请求成功。

int SESSION_MODIFY_REQUEST_TIMED_OUT

会话修改请求超时。

Public constructors

Connection.VideoProvider()

Public methods

void changeCameraCapabilities(VideoProfile.CameraCapabilities cameraCapabilities)

用于在当前相机的功能发生变化时通知监听 InCallService实施。

void changePeerDimensions(int width, int height)

用于通知监听 InCallService当同行的视频的尺寸已经改变的实现。

void changeVideoQuality(int videoQuality)

用于在通话的视频质量发生变化时通知监听 InCallService实施。

void handleCallSessionEvent(int event)

用于在 Connection.VideoProvider报告呼叫会话事件时通知监听 InCallService实施。

abstract void onRequestCameraCapabilities()

Connection.VideoProvider发出请求以检索相机功能。

abstract void onRequestConnectionDataUsage()

Connection.VideoProvider发出请求,以检索当前 Connection的视频组件的当前数据使用情况。

abstract void onSendSessionModifyRequest(VideoProfile fromProfile, VideoProfile toProfile)

发出请求以修改当前视频会话的属性。

abstract void onSendSessionModifyResponse(VideoProfile responseProfile)

提供对更改当前视频会话属性的请求的响应。

abstract void onSetCamera(String cameraId)

设置用于传出视频的摄像头。

abstract void onSetDeviceOrientation(int rotation)

以度为单位设置设备方向。

abstract void onSetDisplaySurface(Surface surface)

设置用于显示从远程设备接收的视频的表面。

abstract void onSetPauseImage(Uri uri)

提供 Connection.VideoProviderUri的图像的,当视频信号被暂停,以便显示给对等设备。

abstract void onSetPreviewSurface(Surface surface)

设置用于显示用户相机当前正在捕捉的内容的表面。

abstract void onSetZoom(float value)

设置相机缩放比例。

void receiveSessionModifyRequest(VideoProfile videoProfile)

用于在 Connection.VideoProvider收到会话修改请求时通知监听 InCallService实现。

void receiveSessionModifyResponse(int status, VideoProfile requestedProfile, VideoProfile responseProfile)

Connection.VideoProvider收到对会话修改请求的响应时,用于通知监听 InCallService实现。

void setCallDataUsage(long dataUsage)

当与当前 Connection关联的视频的数据使用量发生变化时,用于通知监听 InCallService实施。

Inherited methods

From class java.lang.Object

Constants

SESSION_EVENT_CAMERA_FAILURE

Added in API level 23
int SESSION_EVENT_CAMERA_FAILURE

所选相机发生相机故障。 InCallService可以使用此作为提示来通知用户相机不可用。

也可以看看:

常量值:5(0x00000005)

SESSION_EVENT_CAMERA_READY

Added in API level 23
int SESSION_EVENT_CAMERA_READY

当相机再次准备好操作时,在SESSION_EVENT_CAMERA_FAILURE之后发行。 InCallService可以使用此作为提示,通知用户相机已重新可用。

也可以看看:

常数值:6(0x00000006)

SESSION_EVENT_RX_PAUSE

Added in API level 23
int SESSION_EVENT_RX_PAUSE

没有收到视频(没有发布协议暂停)。

也可以看看:

常数值:1(0x00000001)

SESSION_EVENT_RX_RESUME

Added in API level 23
int SESSION_EVENT_RX_RESUME

SESSION_EVENT_RX_PAUSE之后,视频接收已恢复。

也可以看看:

常量值:2(0x00000002)

SESSION_EVENT_TX_START

Added in API level 23
int SESSION_EVENT_TX_START

视频传输已经开始。 这在协商开始视频传输之后发生,当底层协议实际开始将视频传输到远程方时。

也可以看看:

常量值:3(0x00000003)

SESSION_EVENT_TX_STOP

Added in API level 23
int SESSION_EVENT_TX_STOP

视频传输已停止。 这发生在协商停止视频传输后,底层协议实际上已停止将视频传输到远程方。

也可以看看:

常量值:4(0x00000004)

SESSION_MODIFY_REQUEST_FAIL

Added in API level 23
int SESSION_MODIFY_REQUEST_FAIL

会话修改请求失败。

也可以看看:

常量值:2(0x00000002)

SESSION_MODIFY_REQUEST_INVALID

Added in API level 23
int SESSION_MODIFY_REQUEST_INVALID

会话修改请求由于参数无效而被忽略。

也可以看看:

常量值:3(0x00000003)

SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE

Added in API level 23
int SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE

会话修改请求被远程用户拒绝。

也可以看看:

常量值:5(0x00000005)

SESSION_MODIFY_REQUEST_SUCCESS

Added in API level 23
int SESSION_MODIFY_REQUEST_SUCCESS

会话修改请求成功。

也可以看看:

常数值:1(0x00000001)

SESSION_MODIFY_REQUEST_TIMED_OUT

Added in API level 23
int SESSION_MODIFY_REQUEST_TIMED_OUT

会话修改请求超时。

也可以看看:

常量值:4(0x00000004)

Public constructors

Connection.VideoProvider

Added in API level 23
Connection.VideoProvider ()

Public methods

changeCameraCapabilities

Added in API level 23
void changeCameraCapabilities (VideoProfile.CameraCapabilities cameraCapabilities)

当当前相机的功能发生变化时,用于通知监听实现 InCallService

Connection.VideoProvider应在 onRequestCameraCapabilities()响应中或通过 onSetCamera(String)更改当前摄像头时调用此 onSetCamera(String)

InCallService通过 onCameraCapabilitiesChanged(VideoProfile.CameraCapabilities)

Parameters
cameraCapabilities VideoProfile.CameraCapabilities: The new camera capabilities.

changePeerDimensions

Added in API level 23
void changePeerDimensions (int width, 
                int height)

用于在对等方视频的尺寸发生变化时通知监听 InCallService实施。

例如,如果对等设备旋转其设备,更改视频的宽高比,或者用户在后置摄像头和前置摄像头之间切换,则可能会发生这种情况。

InCallService通过 onPeerDimensionsChanged(int, int)

Parameters
width int: The updated peer video width.
height int: The updated peer video height.

changeVideoQuality

Added in API level 23
void changeVideoQuality (int videoQuality)

当通话的视频质量发生变化时,用于通知监听 InCallService

收到 InCallService通过 onVideoQualityChanged(int)

Parameters
videoQuality int: The updated video quality. Valid values: QUALITY_HIGH, QUALITY_MEDIUM, QUALITY_LOW, QUALITY_DEFAULT.

handleCallSessionEvent

Added in API level 23
void handleCallSessionEvent (int event)

用于在 Connection.VideoProvider报告呼叫会话事件时通知监听 InCallService实施。

收到 InCallService通过 onCallSessionEvent(int)

Parameters
event int: The event. Valid values are: SESSION_EVENT_RX_PAUSE, SESSION_EVENT_RX_RESUME, SESSION_EVENT_TX_START, SESSION_EVENT_TX_STOP, SESSION_EVENT_CAMERA_FAILURE, SESSION_EVENT_CAMERA_READY.

onRequestCameraCapabilities

Added in API level 23
void onRequestCameraCapabilities ()

Connection.VideoProvider发出请求以检索相机功能。

Connection.VideoProvider应通过通过 changeCameraCapabilities(VideoProfile.CameraCapabilities)所选摄像头的功能进行 changeCameraCapabilities(VideoProfile.CameraCapabilities)

通过 requestCameraCapabilities()InCallService发送。

onRequestConnectionDataUsage

Added in API level 23
void onRequestConnectionDataUsage ()

Connection.VideoProvider发出请求,以检索当前 Connection的视频组件的当前数据使用情况。

Connection.VideoProvider应通过通过 setCallDataUsage(long)传送当前数据使用情况(以字节为单位)进行 setCallDataUsage(long)

InCallService通过 requestCallDataUsage()发送。

onSendSessionModifyRequest

Added in API level 23
void onSendSessionModifyRequest (VideoProfile fromProfile, 
                VideoProfile toProfile)

发出请求以修改当前视频会话的属性。

示例方案包括:请求将纯音频呼叫升级为双向视频呼叫,打开或关闭用户摄像头,并在 InCallService不再是前台应用程序时发送暂停信号。

如果 Connection.VideoProvider确定请求无效,则应调用 receiveSessionModifyResponse(int, VideoProfile, VideoProfile)将无效请求回报给 InCallService

如果请求需要对等设备用户的确认,则Connection.VideoProvider必须将请求传送给对等设备并处理用户的响应。 receiveSessionModifyResponse(int, VideoProfile, VideoProfile)用于通知InCallService请求的结果。

通过 sendSessionModifyRequest(VideoProfile)InCallService发送。

Parameters
fromProfile VideoProfile: The video profile prior to the request.
toProfile VideoProfile: The video profile with the requested changes made.

onSendSessionModifyResponse

Added in API level 23
void onSendSessionModifyResponse (VideoProfile responseProfile)

提供对更改当前视频会话属性的请求的响应。

例如,如果对方请求并从纯音频呼叫升级为双向视频呼叫,则可能会拒绝该请求并将该呼叫保持为纯音频。 在这种情况下, responseProfile的视频状态为STATE_AUDIO_ONLY 如果用户决定接受请求,则视频状态将为STATE_BIDIRECTIONAL

响应 onSessionModifyRequestReceived(VideoProfile)回调,通过 sendSessionModifyResponse(VideoProfile)InCallService发送。

Parameters
responseProfile VideoProfile: The response video profile.

onSetCamera

Added in API level 23
void onSetCamera (String cameraId)

设置用于传出视频的摄像头。

Connection.VideoProvider应通过通过 changeCameraCapabilities(VideoProfile.CameraCapabilities)所选摄像机的功能进行 changeCameraCapabilities(VideoProfile.CameraCapabilities)

通过 setCamera(String)InCallService发送。

Parameters
cameraId String: The id of the camera (use ids as reported by getCameraIdList()).

onSetDeviceOrientation

Added in API level 23
void onSetDeviceOrientation (int rotation)

以度为单位设置设备方向。 假定设备的标准纵向方向是0度。

通过 setDeviceOrientation(int)InCallService发送。

Parameters
rotation int: The device orientation, in degrees.

onSetDisplaySurface

Added in API level 23
void onSetDisplaySurface (Surface surface)

设置用于显示从远程设备接收的视频的表面。

从已发送 InCallService通过 setDisplaySurface(Surface)

Parameters
surface Surface: The Surface.

onSetPauseImage

Added in API level 23
void onSetPauseImage (Uri uri)

提供 Connection.VideoProviderUri的图像的,当视频信号被暂停,以便显示给对等设备。

InCallService通过 setPauseImage(Uri)发送。

Parameters
uri Uri: URI of image to display.

onSetPreviewSurface

Added in API level 23
void onSetPreviewSurface (Surface surface)

设置用于显示用户相机当前正在捕捉的内容的表面。 当启用视频传输时,这是发送到远程设备的视频信号。

通过 setPreviewSurface(Surface)InCallService发送。

Parameters
surface Surface: The Surface.

onSetZoom

Added in API level 23
void onSetZoom (float value)

设置相机缩放比例。

通过 setZoom(float)InCallService发送。

Parameters
value float: The camera zoom ratio.

receiveSessionModifyRequest

Added in API level 23
void receiveSessionModifyRequest (VideoProfile videoProfile)

用于在 Connection.VideoProvider收到会话修改请求时通知监听 InCallService实现。

InCallService通过 onSessionModifyRequestReceived(VideoProfile)

Parameters
videoProfile VideoProfile: The requested video profile.

也可以看看:

receiveSessionModifyResponse

Added in API level 23
void receiveSessionModifyResponse (int status, 
                VideoProfile requestedProfile, 
                VideoProfile responseProfile)

用于在 Connection.VideoProvider收到对会话修改请求的响应时通知监听 InCallService实现。

收到 InCallService通过 onSessionModifyResponseReceived(int, VideoProfile, VideoProfile)

Parameters
status int: Status of the session modify request. Valid values are SESSION_MODIFY_REQUEST_SUCCESS, SESSION_MODIFY_REQUEST_FAIL, SESSION_MODIFY_REQUEST_INVALID, SESSION_MODIFY_REQUEST_TIMED_OUT, SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE
requestedProfile VideoProfile: The original request which was sent to the peer device.
responseProfile VideoProfile: The actual profile changes agreed to by the peer device.

也可以看看:

setCallDataUsage

Added in API level 23
void setCallDataUsage (long dataUsage)

当与当前 Connection关联的视频的数据使用量发生变化时,用于通知监听 InCallService实施。

这可以通过以下方式响应于预览请求onRequestConnectionDataUsage() ,或者由周期性更新Connection.VideoProvider 在定期更新数据使用情况时,应该每传输1 MB数据至多提供一次,并且每10秒不超过一次。

收到 InCallService通过 onCallDataUsageChanged(long)

Parameters
dataUsage long: The updated data usage (in bytes). Reported as the cumulative bytes used since the start of the call.

Hooray!