智慧服务,成就美好体验 项目咨询

主页 > 服务与支持 > 开发平台 > 客户端SDK参考 > Android Native SDK > 接口参考 音视频呼叫

入门使用

音视频呼叫

更新时间:2019-12-10

TsdkCallManager(呼叫管理类)

接口名称

接口描述

getCallByCallId

获取呼叫对象。

startCall

开始呼叫。

startPlayMedia

播放本地音频文件。

stopPlayMedia

停止铃音播放。

getDevices

获取设备列表。

setVideoIndex

设置视频设备。

getVideoIndex

获取视频设备。

setSpeakVolume

设置输出设备音量。

getSpeakVolume

获取输出音量。

openVideoPreview

打开本地预览。

closeVideoPreview

关闭本地预览。

setMobileAudioRoute

设置移动音频路由。

getMobileAudioRoute

获取移动音频路由。

TsdkCall(呼叫对象类)

注意事项

因代码中多处使用到TsdkCall对象,可定义一个全局变量,方便调用。

TsdkCall tsdkCall = TsdkManager.getInstance().getCallManager().getCallByCallId(callId);
 

参数描述

变量名

类型

描述

Getter

Setter

callInfo

TsdkCallInfo

呼叫信息。

Y

Y

接口名称

接口描述

TsdkCall

构造方法

answerCall

接听呼叫

endCall

结束呼叫

sendDtmf

二次拨号

setVideoWindow

设置视频窗口

addVideo

增加视频

delVideo

删除视频

replyAddVideo

接受音频转视频

videoControl

视频控制

setVideoOrient

设置视频方向

muteMic

设置(或取消)麦克风静音

holdCall

保持通话

unholdCall

取消保持通话

divertCall

呼叫偏转

blindTransfer

呼叫盲转

setVideoOrient

设置视频显示窗口属性

setCaptureRotation

设置摄像头采集方向

setDisplayRotation

设置窗口显示方向

setCameraPicture

设置摄像头图片

setSvcVideoWindow

设置SVC会议视频窗口信息

getCallStatisticInfo

获取呼叫统计信息

getCallByCallId

接口描述

通过呼叫ID得到呼叫对象。

注意事项

无。

接口所属类

TsdkCallManager

方法定义

public TsdkCall getCallByCallId(long callId)
 

参数描述

参数名

类型

描述

callId

long

呼叫ID。

返回值

类型

描述

TsdkCall

返回呼叫对象。

代码示例

//java code
TsdkCall call = TsdkManager.getInstance().getCallManager().getCallByCallId(callID);
 

startCall

接口描述

发起一路普通VOIP呼叫。

注意事项

呼叫ID作为一路通话的唯一标示,UI应保存并管理,以用于后继的呼叫相关操作。

接口所属类

TsdkCallManager

方法定义

public synchronized TsdkCall startCall(String calleeNumber, boolean isVideo) 
 

参数描述

参数名

类型

描述

calleeNumber

String

呼叫号码。最大有效长度255。

isVideo

boolean

是否是视频。

返回值

类型

描述

TsdkCall

返回呼叫对象

使用示例

// Java code
TsdkCall call = TsdkManager.getInstance().getCallManager().startCall(toNumber, isVideoCall);
 

startPlayMedia

接口描述

播放本地音频文件(振铃音、回铃音、拨号(提示)音、DTMF音、忙碌提示音和本地按健音等)。

注意事项

WAV文件,目前支持PCMA、PCMU、G.729格式或采样精度为8或16位、采样率8k~48K的PCM数据,支持双声道。

接口所属类

TsdkCallManager

方法定义

public int startPlayMedia(int loops, String playFile)
 

参数描述

参数名

类型

描述

loops

int

循环次数(0表示循环播放)。

playFile

String

待播放的音频文件(目前支持wav格式)。

返回值

类型

描述

int

成功返回播放句柄。失败返回-1。

代码示例

//java code
ringBackToneHandle = TsdkManager.getInstance().getCallManager().startPlayMedia(0, ringingFile);
 

stopPlayMedia

接口描述

停止铃音播放。

注意事项

无。

接口所属类

TsdkCallManager

方法定义

public int stopPlayMedia(int handle)
 

参数描述

参数名

类型

描述

handle

int

播放句柄。

返回值

类型

描述

int

成功返回TSDK_SUCCESS。失败返回相应错误码。

代码示例

//Java code   
result = TsdkManager.getInstance().getCallManager().stopPlayMedia(ringBackToneHandle);
 

getDevices

接口描述

获取音频视频设备列表。

注意事项

应用程序在任何阶段均可以获取当前可用的音视频设备信息,为更方便地进行后继具体设备管理,建议应用程序在初始化阶段和系统检测到设备变化时,获取设备信息并保存维护。

接口所属类

TsdkCallManager

方法定义

public List<TsdkDeviceInfo> getDevices(TsdkDeviceType deviceType)
 

参数描述

参数名

类型

描述

deviceType

TsdkDeviceType

设备类型。

返回值

类型

描述

List<TsdkDeviceInfo>

成功返回音频视频设备列表。失败返回null。

代码示例

//Java code
cameraList = TsdkManager.getInstance().getCallManager().getDevices(TsdkDeviceType.TSDK_E_DEVICE_CAMERA);
 
 

setVideoIndex

接口描述

设置使用的视频设备序号。

注意事项

设备序号一般在系统初始化后通过getDevices()获取。

接口所属类

TsdkCallManager

方法定义

1
public int setVideoIndex(int index)
 

参数描述

参数名

类型

描述

index

int

视频设备序号。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

1
//java code
 

getVideoIndex

接口描述

获取使用的视频设备序号。

注意事项

用于接口测试或产品调试,实际产品业务场景中无需调用。

接口所属类

TsdkCallManager

方法定义

1
public int getVideoIndex()
 

参数描述

无。

返回值

类型

描述

int

成功返回设备序号,失败返回-1。

代码示例

1
//java code
 

setSpeakVolume

接口描述

设置当前输出设备音量大小。

注意事项

无。

接口所属类

TsdkCallManager

方法定义

public int setSpeakVolume(int volume)
 

参数描述

参数名

类型

描述

volume

int

音量大小,取值范围[0, 100]

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//java code
int setMediaSpeakVolumeResult = TsdkManager.getInstance().getCallManager().setSpeakVolume( 60);
 

getSpeakVolume

接口描述

获取输出音量大小。

注意事项

无。

接口所属类

TsdkCallManager

方法定义

public int getSpeakVolume()
 

参数描述

无。

返回值

类型

描述

int

成功返回输出音量大小,失败返回-1。

代码示例

//Java code
int ret = TsdkManager.getInstance().getCallManager().getSpeakVolume();
 

openVideoPreview

接口描述

打开本地预览窗口。

注意事项

该接口一般用于设备设置时,检测本地摄像头工作状态是否正常。

接口所属类

TsdkCallManager

方法定义

public int openVideoPreview(int index, int handle)
 

参数描述

参数名

类型

描述

index

int

摄相头索引。

handle

int

窗口句柄。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
 

closeVideoPreview

接口描述

关闭并删除本地预览窗口。

注意事项

无。

接口所属类

TsdkCallManager

方法定义

public int closeVideoPreview()
 

参数描述

无。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//java code
 

setMobileAudioRoute

接口描述

设置移动音频路由设备。

注意事项

用于移动设备。

接口所属类

TsdkCallManager

方法定义

public int setMobileAudioRoute(TsdkMobileAuidoRoute route)
 

参数描述

参数名

类型

描述

route

TsdkMobileAuidoRoute

移动音频路由。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//java code
private boolean setAudioRoute(TsdkMobileAuidoRoute audioSwitch)
{
    return TsdkManager.getInstance().getCallManager().setMobileAudioRoute(audioSwitch) == 0;
}
 

getMobileAudioRoute

接口描述

获取移动音频路由设备。

注意事项

用于移动设备。

接口所属类

TsdkCallManager

方法定义

public TsdkMobileAuidoRoute getMobileAudioRoute()
 

参数描述

无。

返回值

类型

描述

TsdkMobileAuidoRoute

成功返回移动音频路由,失败返回为null。

代码示例

//java code
public int getCurrentAudioRoute()
{
    return TsdkManager.getInstance().getCallManager().getMobileAudioRoute().getIndex();
}
 

TsdkCall

接口描述

构造方法。

注意事项

无。

方法定义

public TsdkCall(TsdkCallInfo callInfo)
 

参数描述

参数名

类型

描述

callInfo

TsdkCallInfo

呼叫信息。

返回值

无。

代码示例

  //Java code
 

answerCall

接口描述

被叫方收到呼叫请求时,调用该接口接听呼叫。

注意事项

若被叫方需要拒绝接听呼叫,则需要调用endCall接口。

方法定义

public int answerCall(boolean isVideo) 
 

参数描述

参数名

类型

描述

isVideo

boolean

是否接听视频呼叫。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例
//Java code
int result = tsdkCall.answerCall(iVideoCall==1? true:false);
 

endCall

接口描述

结束和其他用户的通话或者来电。通话双方均可以主动结束呼叫。

注意事项

无。

方法定义

public int endCall() 
 

参数描述

无。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

 //Java code
int result = tsdkCall.endCall();
 

sendDtmf

接口描述

一些业务场景中,用户需要通过终端按键与网络进行交互,如充值、拨打总机后再拨打分机号码、拨打客服中心号码等。本接口用于在通话中发送二次拨号信息,每调用一次发送一次信号。

注意事项

  • 处于通话中才可以发送二次拨号信息。
  • TSDK不提供DTMF按键音功能。为了实现更友好的最终用户体验,UI应同步调用SDK提供的媒体播放接口或系统提供的播放接口,实现播放DTMF按键音。

方法定义

public int sendDtmf(TsdkDtmfTone tone) 
 

参数描述

参数名

类型

描述

tone

TsdkDtmfTone

DTMF键值。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean reDial(int code)
{
    TsdkDtmfTone tsdkDtmfTone = TsdkDtmfTone.enumOf(code);
    LogUtil.d(TAG, "Dtmf Tone :" + tsdkDtmfTone.getIndex());
    int result = tsdkCall.sendDtmf(tsdkDtmfTone);
    if (result != 0)
    {
        LogUtil.e(TAG, "sendDTMF return failed, result = " + result);
        return false;
    }
    return true;
}
 

setVideoWindow

接口描述

  • 用户建立视频呼叫时,调用本接口设置视频窗口与呼叫的绑定关系。
  • 如果用户仅选择音频接听,则无需调用此接口。

注意事项

呼叫存在时,callid填写对应的有效值;呼叫不存在(未建立,主叫呼出时),callid填写非法值。

方法定义

public int setVideoWindow(List<TsdkVideoWndInfo> list) 
 

参数描述

参数名

类型

描述

list

List<TsdkVideoWndInfo>

视频窗口信息列表。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
// 设置本地视频窗口
TsdkVideoWndInfo localWndInfo = new TsdkVideoWndInfo();
localWndInfo.setVideoWndType(TsdkVideoWndType.TSDK_E_VIDEO_WND_LOCAL);
localWndInfo.setRender(ViERenderer.getIndexOfSurface(localVideoView));
localWndInfo.setDisplayMode(TsdkVideoWndDisplayMode.TSDK_E_VIDEO_WND_DISPLAY_FULL);

//设置远端视频窗口
TsdkVideoWndInfo remoteWndInfo = new TsdkVideoWndInfo();
remoteWndInfo.setVideoWndType(TsdkVideoWndType.TSDK_E_VIDEO_WND_REMOTE);
remoteWndInfo.setRender(ViERenderer.getIndexOfSurface(remoteVideoView));
remoteWndInfo.setDisplayMode(TsdkVideoWndDisplayMode.TSDK_E_VIDEO_WND_DISPLAY_CUT);

List<TsdkVideoWndInfo> list = new ArrayList<>();
list.add(localWndInfo);
list.add(remoteWndInfo);

TsdkManager.getInstance().getCallManager().getCallByCallId(callId).setVideoWindow(list);
 

addVideo

接口描述

发起音频转视频呼叫请求。

注意事项

无。

方法定义

public int addVideo() 
 

参数描述

无。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean addVideo()
{
    initVideoWindow();

    int result = tsdkCall.addVideo();
    if (result != 0)
    {
        LogUtil.e(TAG, "addVideo return failed, result = " + result);
        return false;
    }

    setCallStatus(CallConstant.CallStatus.VIDEO_CALLING);
    return true;
}
 

delVideo

接口描述

发起视频转音频呼叫请求。

注意事项

前提条件:视频通话已建立,主被叫正在通话中。

方法定义

public int delVideo() 
 

参数描述

无。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean delVideo()
{
    int result = tsdkCall.delVideo();
    if (result != 0)
    {
        LogUtil.e(TAG, "delVideo return failed, result = " + result);
        return false;
    }

    setCallStatus(CallConstant.CallStatus.AUDIO_CALLING);

    return true;
}
 

replyAddVideo

接口描述

对方请求音频转视频呼叫时,本方选择同意或者拒绝。

注意事项

无。

方法定义

public int replyAddVideo(boolean isAccept) 
 

参数描述

参数名

类型

描述

isAccept

boolean

是否同意。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean acceptAddVideo()
{
    initVideoWindow();

    int result = tsdkCall.replyAddVideo(true);
    if (result != 0)
    {
        LogUtil.e(TAG, "replyAddVideo(accept) return failed, result = " + result);
        return false;
    }
    return true;
}
 

videoControl

接口描述

视频控制。

注意事项

无。

方法定义

public int videoControl(TsdkVideoCtrlInfo videoCtrlInfo) 
 

参数描述

参数名

类型

描述

videoCtrlInfo

TsdkVideoCtrlInfo

视频控制参数。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
module = 0x02 | 0x04;
operation = 0x04;

TsdkVideoCtrlInfo tsdkVideoCtrlInfo = new TsdkVideoCtrlInfo(0, operation, module);
result = call.videoControl(tsdkVideoCtrlInfo);
 

setVideoOrient

接口描述

设置视频方向。

注意事项

用于移动设备。

方法定义

public int setVideoOrient(int index, TsdkVideoOrient orient) 
 

参数描述

参数名

类型

描述

index

int

设备(摄像头)索引。

orient

TsdkVideoOrient

视频方向(横竖屏)参数。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
if (cameraIndex == CallConstant.FRONT_CAMERA) {
    portrait = 3;
    landscape = 0;
    seascape = 2;
} else if (cameraIndex == CallConstant.BACK_CAMERA) {
    portrait = 1;
    landscape = 0;
    seascape = 2;
}

/**
 * 横竖屏信息stOrient 设置标志位
 * @param int callId    0表示全局设置,不为0表示 会话中设置
 * @param int index     摄像头index
 * @param int orient    视频横竖屏情况 1:竖屏;2:横屏;3:反向横屏
 * @param int portrait  竖屏视频捕获(逆时针旋转)角度 0:0度;1:90度;2:180度;3:270度;
 * @param int landscape 横屏视频捕获(逆时针旋转)角度 0:0度;1:90度;2:180度;3:270度;
 * @param int seascape 反向横屏视频捕获(逆时针旋转)角度 0:0度;1:90度;2:180度;3:270度;
 * @return int result  视频角度
 */
TsdkVideoOrient videoOrient = new TsdkVideoOrient(portrait, seascape, landscape,orient);
int result = callManager.getCallByCallId(callId).setVideoOrient(cameraIndex, videoOrient);
 

muteMic

接口描述

设置(或取消)麦克风静音。

注意事项

  • 前提条件:通话已建立,主被叫正在通话中。
  • 设置和取消闭音麦克风针对指定通话,不是针对设备。
  • 设置和取消闭音麦克风操作本地媒体,通话对端不感知。

方法定义

public int muteMic(boolean isMute) 
 

参数描述

参数名

类型

描述

isMute

boolean

是否静音。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean muteMic(boolean mute)
{
    int result = tsdkCall.muteMic(mute);
    if (result != 0)
    {
        LogUtil.e(TAG, "mediaMuteMic return failed, result = " + result);
        return false;
    }
    return true;
}
 

holdCall

接口描述

保持通话。

注意事项

  • 处于通话中才可以调用该接口。
  • 视频通话被保持时,视频将会自动被关闭,恢复时,视频将会自动打开。

方法定义

public int holdCall() 
 

参数描述

无。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean holdCall()
{
    int result = tsdkCall.holdCall();
    if (result != 0)
    {
        LogUtil.e(TAG, "holdCall return failed, result = " + result);
        return false;
    }
    return true;
}
 

unholdCall

接口描述

取消保持通话(恢复通话)。

注意事项

  • 处于通话保持状态才可以调用该接口。
  • 因通话双方均可以在本端处于通话态发起保持操作,即通话可能会处于双向保持态,在任一保持方发起恢复通话时,仅能恢复本端通话状态,不会恢复对端的通话状态。
  • 视频通话双向保持状态中,任一方先恢复通话,不会自动打开视频;双方均恢复通话后,视频才会打开。

方法定义

 public int unholdCall() 
 

参数描述

无。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean unHoldCall()
{
    int result = tsdkCall.unholdCall();
    if (result != 0)
    {
        LogUtil.e(TAG, "unholdCall return failed, result = " + result);
        return false;
    }
    return true;
}
 

divertCall

接口描述

  • 发起呼叫偏转请求。
  • 用户在收到来电时,若不方便接听(或其他场景),可以通过调用此接口,在不接听通话的情况下将来电偏转到其他用户或本人的其他通信工具。

注意事项

前提条件:收到来电,本地正在振铃。

方法定义

public int divertCall(String divertNumber) 
 

参数描述

参数名

类型

描述

divertNumber

String

偏转目的号码。最大长度32。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean divertCall(String divertNumber)
{
    int result = tsdkCall.divertCall(divertNumber);
    if (result != 0)
    {
        LogUtil.e(TAG, "divertCall return failed, result = " + result);
        return false;
    }
    return true;
}
 

blindTransfer

接口描述

发起呼叫盲转请求。

注意事项

  • 前提条件:音视频通话已建立,主被叫正在通话中。
  • 发起转移的呼叫方不关注呼叫盲转目的方的状态。
  • 若用户在视频呼叫发起盲转,则盲转的第三方收到的是音频来电。
  • 部分低版本的业务服务器,为了减少被转移方的处理,在服务器代理完成盲转处理,被转方界面不感知通话被转移。

方法定义

public int blindTransfer(String transtoNumber) 
 

参数描述

参数名

类型

描述

transtoNumber

String

盲转目的号码。最大长度32。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean blindTransfer(String transferNumber)
{
    int result = tsdkCall.blindTransfer(transferNumber);
    if (result != 0)
    {
        LogUtil.e(TAG, "blindTransfer return failed, result = " + result);
        return false;
    }
    return true;
}
 

setVideoRender

接口描述

设置视频显示窗口属性。

注意事项

无。

方法定义

public int setVideoRender(TsdkVideoRenderInfo videoRender) 
 

参数描述

参数名

类型

描述

videoRender

TsdkVideoRenderInfo

视频显示窗口属性。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
// 窗口镜像模式 0:不做镜像(默认值) 1:上下镜像(目前未支持) 2:左右镜像
// 本地视频前置摄像头做左右镜像,所以设置mirror type为 2
TsdkVideoRenderInfo videoRenderInfo = new TsdkVideoRenderInfo();
videoRenderInfo.setRenderType(TsdkVideoWndType.TSDK_E_VIDEO_WND_LOCAL);
videoRenderInfo.setMirrorType(TsdkVideoWndMirrorType.TSDK_E_VIDEO_WND_MIRROR_HORIZONTAL);
videoRenderInfo.setDisplayType(TsdkVideoWndDisplayMode.TSDK_E_VIDEO_WND_DISPLAY_CUT);

TsdkManager.getInstance().getCallManager().getCallByCallId(currentCallId).setVideoRender(videoRenderInfo);
 

setCaptureRotation

接口描述

设置摄像头采集方向。

注意事项

无。

方法定义

public int setCaptureRotation(int cameraIndex, int captureRotation) 
 

参数描述

参数名

类型

描述

cameraIndex

int

采集设备(摄像头)索引。

captureRotation

int

摄像头采集角度 {0,1,2,3} 仅对移动平台有效。默认为0。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
result = call.setCaptureRotation(CallConstant.FRONT_CAMERA, 0);
 

setDisplayRotation

接口描述

设置窗口显示方向。

注意事项

无。

方法定义

public int setDisplayRotation(TsdkVideoWndType windowType, int displayRotation) 
 

参数描述

参数名

类型

描述

windowType

TsdkVideoWndType

视频窗口类型。

displayRotation

int

窗口显示角度 {0,1,2,3} 仅对移动平台有效。默认为0。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
public boolean setDisplayRotation(TsdkVideoWndType type, int rotation)
{

    TsdkManager.getInstance().getCallManager().getCallByCallId(currentCallId).setDisplayRotation(type, rotation);

    return true;
}
 

setCameraPicture

接口描述

设置摄像头图片。

注意事项

无。

方法定义

public int setCameraPicture(String fileName)
 

参数描述

参数名

类型

描述

fileName

String

图片路径,不超过1920*1200的BMP格式图片。

返回值

类型

描述

int

成功返回TSDK_SUCCESS,失败返回相应错误码。

代码示例

//Java code
//采用发送默认图版本方式,替代关闭摄相头动作
String picturePath = Environment.getExternalStorageDirectory() + File.separator + BMP_FILE;
result = call.setCameraPicture(picturePath);
 

setSvcVideoWindow

接口描述

设置SVC会议视频窗口信息。

注意事项

无。

方法定义

public int setSvcVideoWindow(List<TsdkSvcVideoWndInfo> list) 
 

参数描述

参数名

类型

描述

list

List<TsdkSvcVideoWndInfo>

SVC视频窗口信息列表。

返回值

类型

描述

int

成功则返回TSDK_SUCCESS,失败则返回相应错误码。

代码示例

//Java code
public void initSvcVideoWindow(final long callId, List<Long> svcLabel)
{
	LogUtil.i(TAG, "initVideoWindow() enter" + callId);
	currentSvcLabel = svcLabel;

	handler.post(new Runnable() {
		@Override
		public void run() {

			if (isInitializedVideoWindows == false) {
				createVideoRenderer(true);
			}
			else {
				LogUtil.i(TAG, "p2p to conference.");
				createVideoRenderer(true);
			}
			isInitializedVideoWindows = true;

			setCurrentCallId(callId);

			//设置视频窗口方向参数
			setVideoOrient(callId, CallConstant.FRONT_CAMERA);

			TsdkCall tsdkCall = callManager.getCallByCallId(callId);
			if (tsdkCall == null) {
				return;
			}

			// 设置本地视频窗口
			TsdkVideoWndInfo localWndInfo = new TsdkVideoWndInfo();
			localWndInfo.setVideoWndType(TsdkVideoWndType.TSDK_E_VIDEO_WND_LOCAL);
			localWndInfo.setRender(ViERenderer.getIndexOfSurface(localVideoView));
			localWndInfo.setDisplayMode(TsdkVideoWndDisplayMode.TSDK_E_VIDEO_WND_DISPLAY_CUT);

			List<TsdkVideoWndInfo> list = new ArrayList<>();
			list.add(localWndInfo);

			tsdkCall.setVideoWindow(list);

			//设置SVC远端视频窗口
			TsdkSvcVideoWndInfo bigSvcVideoWndInfo = new TsdkSvcVideoWndInfo();
			bigSvcVideoWndInfo.setRender(ViERenderer.getIndexOfSurface(remoteBigVideoView));
			bigSvcVideoWndInfo.setLabel(currentSvcLabel.get(0));
			bigSvcVideoWndInfo.setWidth(960); // (960*540) usBandWidth[1300] (320*180) usBandWidth[195] (640*360) usBandWidth[620]
			bigSvcVideoWndInfo.setHeight(540);

			TsdkSvcVideoWndInfo smallSvcVideoWndInfo_01 = new TsdkSvcVideoWndInfo();
			smallSvcVideoWndInfo_01.setRender(ViERenderer.getIndexOfSurface(remoteSmallVideoView_01));
			smallSvcVideoWndInfo_01.setLabel(currentSvcLabel.get(1));
			smallSvcVideoWndInfo_01.setWidth(160); //320
			smallSvcVideoWndInfo_01.setHeight(90);//180

			TsdkSvcVideoWndInfo smallSvcVideoWndInfo_02 = new TsdkSvcVideoWndInfo();
			smallSvcVideoWndInfo_02.setRender(ViERenderer.getIndexOfSurface(remoteSmallVideoView_02));
			smallSvcVideoWndInfo_02.setLabel(currentSvcLabel.get(2));
			smallSvcVideoWndInfo_02.setWidth(160); //320
			smallSvcVideoWndInfo_02.setHeight(90);//180

			TsdkSvcVideoWndInfo smallSvcVideoWndInfo_03 = new TsdkSvcVideoWndInfo();
			smallSvcVideoWndInfo_03.setRender(ViERenderer.getIndexOfSurface(remoteSmallVideoView_03));
			smallSvcVideoWndInfo_03.setLabel(currentSvcLabel.get(3));
			smallSvcVideoWndInfo_03.setWidth(160); //320
			smallSvcVideoWndInfo_03.setHeight(90);//180

			List<TsdkSvcVideoWndInfo> svcWndInfoList = new ArrayList<>();
			svcWndInfoList.add(bigSvcVideoWndInfo);
			svcWndInfoList.add(smallSvcVideoWndInfo_01);
			svcWndInfoList.add(smallSvcVideoWndInfo_02);
			svcWndInfoList.add(smallSvcVideoWndInfo_03);

			tsdkCall.setSvcVideoWindow(svcWndInfoList);
		}
	});

}
 

getCallStatisticInfo

接口描述

获取呼叫统计信息。

注意事项

无。

方法定义

public TsdkCallStatisticInfo getCallStatisticInfo()
 

参数描述

返回值

类型

描述

TsdkCallStatisticInfo

成功返回呼叫统计信息,失败返回null。

代码示例

//Java code