com.tencent.av.sdk
Class AVVideoCtrl

java.lang.Object
  extended by com.tencent.av.sdk.AVVideoCtrl

public class AVVideoCtrl
extends java.lang.Object

AVVideoCtrl表示视频控制器,主要用于简化视频设备控制。
通过AVVideoCtrl,您可以控制摄像头。
在SDK正常启动之后,可以通过AVContext的GetAVVideoCtrl()来获取AVAVVideoCtrl对象。
另外需要注意的是,当App被切到后台,需要暂停SDK,否则会导致无法接触对系统资源的占用。


Nested Class Summary
static class AVVideoCtrl.EnableCameraCompleteCallback
          enableCamera()的回调函数,用来异步返回开启/关闭摄像头结果。
static class AVVideoCtrl.EnableExternalCaptureCompleteCallback
          EnableExternalCapture()的回调函数,用来异步返回开启/关闭摄像头结果。
static class AVVideoCtrl.LocalVideoPreviewCallback
          setLocalVideoPreviewCallback()方法设置的回调函数。
static class AVVideoCtrl.RemoteScreenVideoPreviewCallback
          setRemoteScreenVideoPreviewCallback()方法设置的回调函数。
static class AVVideoCtrl.RemoteVideoPreviewCallback
          setRemoteVideoPreviewCallback()方法设置的回调函数。
static class AVVideoCtrl.SwitchCameraCompleteCallback
          switchCamera()的回调函数,用来异步返回切换摄像头结果。
static class AVVideoCtrl.VideoFrame
           
 
Field Summary
static int COLOR_FORMAT_I420
          视频数据图像格式。目前仅支持I420。
 int nativeObj
           
 
Constructor Summary
AVVideoCtrl()
          构造函数。
 
Method Summary
 int enableCamera(int cameraId, boolean isEnable, AVVideoCtrl.EnableCameraCompleteCallback callback)
          开启/关闭摄像头。
异步返回结果。对于多人通话,目前支持至多4个人打开摄像头。
 int enableExternalCapture(boolean isEnable, AVVideoCtrl.EnableExternalCaptureCompleteCallback callback)
          开启/关闭外部视频捕获设备。
异步返回结果。
 int fillExternalCaptureFrame(byte[] data, int dataLen, int width, int height, int cameraAngle, int colorFormat, int srcType)
          输入从外部视频捕获设备获取的视频图像到SDK。
 int getCameraNum()
          获取摄像头个数。
同步返回结果。App通过调用此方法判断手机是否支持打开摄像头、切换前后摄像头。
 java.lang.Object getCameraPara()
          获取摄像头参数对象。
同步返回结果。。
 java.lang.String getQualityTips()
          获取通话中实时视频质量相关信息,业务侧可以不用关心,主要用来查看通话情况、排查问题等。
 void setCameraPara(Camera.Parameters para)
          设置摄像头参数。
同步返回结果。。
 boolean setLocalVideoPreviewCallback(AVVideoCtrl.LocalVideoPreviewCallback localVideoPreviewCallback)
          设置本地摄像头视频的预览回调。
 boolean setRemoteScreenVideoPreviewCallback(AVVideoCtrl.RemoteScreenVideoPreviewCallback remoteScreenVideoPreviewCallback)
          设置屏幕分享接收虚拟设备的视频的预览回调。
如果设置了该回调,那么就可以获取所请求的屏幕分享接收虚拟设备的视频画面的帧序列,业务侧可以实现对视频帧的处理及渲染等。
 boolean setRemoteVideoPreviewCallback(AVVideoCtrl.RemoteVideoPreviewCallback remoteVideoPreviewCallback)
          设置远端视频的预览回调。
如果设置了该回调,那么就可以获取所请求(请求几路就可以获得几路)的远端视频画面的帧序列,业务侧可以实现对视频帧的处理及渲染等。
 void setRotation(int rotation)
          设置摄像头角度。
同步返回结果。当用户旋转手机屏幕时,App需要通过重力感应事件把当前的手机旋转角度传给SDK。
SDK会根据旋转角度修正摄像头预览画面。
 int switchCamera(int cameraId, AVVideoCtrl.SwitchCameraCompleteCallback callback)
          切换摄像头。
异步返回结果。调用此方法前,App需要先调用#enableCamera(boolean, EnableCameraCompleteCallback)
等待异步打开摄像头成功之后,才可以调用此方法。
注意:如果手机只有一个摄像头时,不需要切换,调用此方法不会有异步回调。
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nativeObj

public int nativeObj

COLOR_FORMAT_I420

public static final int COLOR_FORMAT_I420
视频数据图像格式。目前仅支持I420。

See Also:
Constant Field Values
Constructor Detail

AVVideoCtrl

public AVVideoCtrl()
构造函数。

Method Detail

enableCamera

public int enableCamera(int cameraId,
                        boolean isEnable,
                        AVVideoCtrl.EnableCameraCompleteCallback callback)
开启/关闭摄像头。
异步返回结果。对于多人通话,目前支持至多4个人打开摄像头。

Parameters:
当isEnable为true,cameraId为优先打开的摄像头。 -
isEnable - true表示开启,false表示关闭。
callback - 回调对象,指向App定义的回调函数。
Returns:
AV_OK表示调用成功,否则为出错代码。

enableExternalCapture

public int enableExternalCapture(boolean isEnable,
                                 AVVideoCtrl.EnableExternalCaptureCompleteCallback callback)
开启/关闭外部视频捕获设备。
异步返回结果。

Parameters:
isEnable - true表示开启,false表示关闭。
callback - 回调对象,指向App定义的回调函数。
Returns:
返回值为AV_OK时表示成功,否则表示失败。

fillExternalCaptureFrame

public int fillExternalCaptureFrame(byte[] data,
                                    int dataLen,
                                    int width,
                                    int height,
                                    int cameraAngle,
                                    int colorFormat,
                                    int srcType)
输入从外部视频捕获设备获取的视频图像到SDK。

Parameters:
data - 图像数据。
dataLen - 图像数据长度。
width - 图像宽度。
height - 图像高度。
cameraAngle - 图像渲染角度。角度可以是0,90,180,270。
colorFormat - 图像颜色格式。当前仅支持COLOR_FORMAT_I420。
srcType - 视频源类型。当前仅支持VIDEO_SRC_TYPE_CAMERA。
Returns:
返回值为AV_OK时表示成功,否则表示失败。 分辨率宽高比例限定只能为4:3,且最大宽度为640

switchCamera

public int switchCamera(int cameraId,
                        AVVideoCtrl.SwitchCameraCompleteCallback callback)
切换摄像头。
异步返回结果。调用此方法前,App需要先调用#enableCamera(boolean, EnableCameraCompleteCallback)
等待异步打开摄像头成功之后,才可以调用此方法。
注意:如果手机只有一个摄像头时,不需要切换,调用此方法不会有异步回调。

Parameters:
cameraId - 摄像头id,取值如下:
  • 1 前置摄像头。
  • 2 后置摄像头。
callback - 回调对象,指向App定义的回调函数。
Returns:
AV_OK表示调用成功,其他值表示失败:
  • AV_ERR_INVALID_ARGUMENT 没有打开摄像头。
See Also:
#enableCamera(boolean, EnableCameraCompleteCallback), getCameraNum()

getCameraNum

public int getCameraNum()
获取摄像头个数。
同步返回结果。App通过调用此方法判断手机是否支持打开摄像头、切换前后摄像头。

Returns:
摄像头个数。

setRotation

public void setRotation(int rotation)
设置摄像头角度。
同步返回结果。当用户旋转手机屏幕时,App需要通过重力感应事件把当前的手机旋转角度传给SDK。
SDK会根据旋转角度修正摄像头预览画面。

Parameters:
rotation - 摄像头角度,取值如下:
  • 0
  • 90
  • 180
  • 270

setCameraPara

public void setCameraPara(Camera.Parameters para)
设置摄像头参数。
同步返回结果。。

Parameters:
para - 摄像头参数对象

getCameraPara

public java.lang.Object getCameraPara()
获取摄像头参数对象。
同步返回结果。。

Returns:
摄像头参数对象。

getQualityTips

public java.lang.String getQualityTips()
获取通话中实时视频质量相关信息,业务侧可以不用关心,主要用来查看通话情况、排查问题等。

Returns:
tips。

setLocalVideoPreviewCallback

public boolean setLocalVideoPreviewCallback(AVVideoCtrl.LocalVideoPreviewCallback localVideoPreviewCallback)
设置本地摄像头视频的预览回调。

Parameters:
localVideoPreviewCallback - 预览回调。
Returns:
true 代表设置成功,否则设置失败。 该音视频SDK会在主线程调用该预览回调,业务侧根据实际需要决定是否却换线程。

setRemoteVideoPreviewCallback

public boolean setRemoteVideoPreviewCallback(AVVideoCtrl.RemoteVideoPreviewCallback remoteVideoPreviewCallback)
设置远端视频的预览回调。
如果设置了该回调,那么就可以获取所请求(请求几路就可以获得几路)的远端视频画面的帧序列,业务侧可以实现对视频帧的处理及渲染等。

Parameters:
remoteVideoPreviewCallback - 预览回调。
Returns:
true 代表设置成功,否则设置失败。 该音视频SDK会在主线程调用该预览回调,业务侧根据实际需要决定是否却换线程。

setRemoteScreenVideoPreviewCallback

public boolean setRemoteScreenVideoPreviewCallback(AVVideoCtrl.RemoteScreenVideoPreviewCallback remoteScreenVideoPreviewCallback)
设置屏幕分享接收虚拟设备的视频的预览回调。
如果设置了该回调,那么就可以获取所请求的屏幕分享接收虚拟设备的视频画面的帧序列,业务侧可以实现对视频帧的处理及渲染等。

Parameters:
remoteScreenVideoPreviewCallback - 预览回调。
Returns:
true 代表设置成功,否则设置失败。 该音视频SDK会在主线程调用该预览回调,业务侧根据实际需要决定是否却换线程。