public class QHVCInteractiveKit
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
int |
clearVideoCompositingLayout()
取消画中画布局设置
当该合流任务取消时,需要调用此方法。
|
void |
closeCollectingData()
|
void |
destroy()
释放互动直播引擎,回收处理
|
int |
disableAudio()
关闭语音模式
|
int |
disableVideo()
开启纯音频模式, 该方法用于关闭视频,开启纯音频模式。可以在加入频道前或者通话中调用,在加入频道前调
用,则自动开启纯音频模式,在通话中调用则由视频模式切换为纯音频频模式。调用
enablevideo 方法可开启视频模式。
|
int |
enableAudio()
开启语音模式
该方法开启语音模式(默认为开启状态)。
|
int |
enableAudioVolumeIndication(int interval,
int smooth)
该方法允许 SDK 定期向应用程序反馈当前谁在说话以及说话者的音量。
|
int |
enableDualStreamMode(boolean enabled)
使用双流/单流模式
|
int |
enableLocalVideo(boolean enabled)
禁用/启用本地视频功能。该方法用于只看不发的视频场景。该方法不需要本地有摄像头。
|
int |
enableVideo()
开启视频模式, 该方法用于开启视频模式。可以在加入频道前或者通话中调用,在加入频道前调用,则自动开
启视频模式,在通话中调用则由音频模式切换为视频模式。调用 disablevideo 方法可关闭视
频模式。
|
com.qihoo.livecloud.tools.LiveCloudConfig |
getConfig()
获取config
|
static QHVCInteractiveKit |
getInstance()
单例
|
static java.lang.String |
getVersion()
获取版本号
|
QHVCInteractiveVideoSourceEvent |
getVideoSourceEvent()
获取自采集数据源事件
|
boolean |
isSpeakerphoneEnabled()
是否是扬声器状态
|
int |
joinChannel()
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,
可以群聊。如果已在通话中,用户必须调用leaveChannel 退出当前通话,才能进入下一个频道。
|
int |
leaveChannel()
离开频道
即挂断或退出通话。joinChannel后,必须调用leaveChannel以结束通话,否则不能进行下一次通话。不管当前
是否在通话中,都可以调用leaveChannel,没有副作用。leaveChannel会把会话相关的所有资源释放掉。leaveChannel
是异步操作,调用返回时并没有真正退出频道。在真正退出频道后,SDK会触发QHVCInteractCallBack.onLeaveChannel()。
|
int |
loadEngine(java.lang.String roomId,
java.lang.String userId,
java.lang.String sessionId,
java.util.Map<java.lang.String,java.lang.String> optionInfo,
QHVCInteractiveEventHandler interactCallBack)
加载互动直播引擎数据,进行准备工作。调用该方法前,必须先调用setPublicServiceInfo进行业务信息准备,
必须在该方法调用后才能调用其它实例方法。该方法是异步执行,待回调执行之后才能执行其它实例方法。
|
int |
muteAllRemoteAudioStreams(boolean muted)
静音所有远端用户/对所有远端用户取消静音。本方法用于允许/禁止播放远端用户的音频流。
注: 该方法不影响音频数据流的接收,只是不播放音频流。
|
int |
muteAllRemoteVideoStreams(boolean muted)
暂停/恢复所有人视频流。本方法用于允许/禁止播放所有人的视频流。
注: 该方法不影响视频数据流的接收,只是不播放视频流。
|
int |
muteLocalAudioStream(boolean muted)
静音/取消静音。该方法用于允许/禁止往网络发送本地音频流。
注: 该方法不影响录音状态,并没有禁用麦克风。
|
int |
muteLocalVideoStream(boolean muted)
暂停/恢复发送本地视频流。该方法用于允许/禁止往网络发送本地视频流。
注: 该方法不影响本地视频流获取,没有禁用摄像头。
|
int |
muteRemoteAudioStream(java.lang.String uid,
boolean muted)
静音指定远端用户/对指定远端用户取消静音。本方法用于允许/禁止播放远端用户的音频流。
注: 该方法不影响音频数据流的接收,只是不播放音频流。
|
int |
muteRemoteVideoStream(java.lang.String uid,
boolean muted)
暂停/恢复指定远端视频流。本方法用于允许/禁止播放指定远端视频流。
注: 该方法不影响视频数据流的接收,只是不播放视频流。
|
void |
openCollectingData()
|
int |
removeRemoteVideo(java.lang.String streamId,
java.lang.String uid)
该方法用于解绑远程用户的显示视图,当远端用户离开频道后,调用此方法来解绑。
|
int |
setAudioFrameCallback(QHVCInteractiveAudioFrameCallback audioFrameCallback)
该方法设置音频数据对外回调的callback
|
int |
setChannelProfile(int profile)
该方法用于设置频道模式(Profile)。 SDK需知道应用程序的使用场景, 从而使用
不同的优化手段。
注:该方法必须在进入频道前设置,在频道中设置无效。在同一个频道中,通信模式不能与直
播模式混用。
|
int |
setClientRole(int role)
设置和切换用户模式
在加入频道前,用户需要通过本方法设置观众或主播模式(默认)。
在加入频道后,用户可以通过本方法切换用户模式。如果切换成功,将回调onChangeClientRoleSuccess()方法。
该方法仅在直播模式有效。
|
int |
setCloudControlRole(java.lang.String role)
设置云控角色 (需在joinChannel前调用)
|
static void |
setDebugEnv(boolean debugEnv)
业务方请忽略
|
int |
setEnableSpeakerphone(boolean enabled)
切换音频输出方式:扬声器或听筒。
注:再调用本方法前,请确保已成功调用 joinChannel。
|
int |
setLocalRenderMode(int mode)
该方法设置本地视频显示模式。应用程序可以多次调用此方法更改显示模式。
注:本方法仅适用于使用SDK采集视频,对于业务层自采集视频时,请不要调用。
|
int |
setLocalVideoExternalRender(QHVCInteractiveLocalVideoRenderCallback localVideoRenderCallback)
该方法设置本地视频外部渲染(即业务端渲染)的视频数据回调callback
|
int |
setLogFile(java.lang.String filePath)
设置 SDK 的输出 log 文件。 SDK 运行时产生的所有 log 将写入该文件。应用程序必须保证指
定的目录存在而且可写。
|
int |
setLowStreamVideoProfile(int width,
int height,
int fps,
int bitrate)
设置小流的参数(仅在开启双流模式时有效)
小流分辨率需要和大流的成比例,比如大流 360*640,小流可以设置 180*320,小流不要设置太大。
注: 请确保在joinChannel之前调用。
|
int |
setMixStreamInfo(QHVCInteractiveMixStreamConfig mixStreamConfig,
QHVCInteractiveConstant.StreamLifeCycle lifeCycle)
n+m路转推(n路分流+m路合流),合流信息预设接口
请确保要在joinChannel之前调用。
|
int |
setParameters(java.lang.String options)
设置一些SDK的特殊参数
|
void |
setPublicServiceInfo(java.lang.String channelId,
java.lang.String appKey,
java.lang.String userSign)
设置公共业务信息该方法需要在所有实例方法之前调用,用于设置业务所需要的一些必要信息,便于业务区分、统计使用。
|
int |
setRemoteRenderMode(java.lang.String uid,
int mode)
该方法设置远端视频显示模式。应用程序可以多次调用此方法更改显示模式。
|
int |
setRemoteVideoExternalRender(java.lang.String uid,
java.lang.String streamId,
QHVCInteractiveRemoteVideoRenderCallback externalRenderCallback)
该方法设置远端视频外部渲染(即业务端渲染)的视频回调callback。
|
int |
setRemoteVideoStream(java.lang.String uid,
int streamType)
视频大小流切换, 该方法指定接收远端用户的视频流大小。使用该方法可以根据视频窗口的大小动态调整对应
视频流的大小,以节约带宽和计算资源。本方法调用状态将在下文的SDK 默认收到视频小流,节省带宽。
如需使用视频大流,调用本方法进行切换。
|
int |
setupLocalVideo(View view,
int renderMode,
java.lang.String uid)
该方法设置本地视频显示信息。应用程序通过调用此接口绑定本地视频流的显示视窗(view),
并设置视频显示模式。在应用程序开发中, 通常在初始化后调用该方法进行本地视频设置,
然后再加入频道。退出频道后,绑定仍然有效,如果需要解除绑定,可以指定空(NULL)View
调用 setupLocalVideo。
|
int |
setupRemoteVideo(java.lang.Object view,
int renderMode,
java.lang.String uid,
java.lang.String streamId)
该方法绑定远程用户和显示视图,即设定 uid 指定的用户用哪个视图来显示哪一路流。建议由业务端来控制什么时候显示。解除某个用户的绑定视图可以调用removeRemoteVideo。
退出频道后, SDK 会把远程用户的绑定关系清除掉。
|
int |
setVideoCompositingLayout(QHVCInteractiveMixStreamRegion[] mixStreamInfos)
更新合流的视频布局(即画中画布局)
|
int |
setVideoProfile(int profile,
boolean swapWidthAndHeight)
该方法设置视频编码属性(Profile)。每个属性对应一套视频参数,如分辨率、帧率、码率等。当设备的摄像头
不支持指定的分辨率时, SDK 会自动选择一个合适的摄像头分辨率,但是编码分辨率仍然用 setVideoProfile 指定的。
注:1.
|
int |
setVideoProfileEx(int width,
int height,
int frameRate,
int bitrate)
该方法设置视频编码属性。
|
int |
setVideoQualityParameters(boolean preferFrameRateOverImageQuality)
该方法允许用户设置视频的优化选项。
|
int |
startPreview()
该方法用于启动本地视频预览。在开启预览前,必须先调用 setupLocalVideo 设置预览窗口及
属性,且必须调用 enableVideo 开启视频功能。如果在调用 joinChannel 进入频道之前调用了
startPreview 启动本地视频预览,在调用 leaveChannel 退出频道之后本地预览仍然处于启动
状态,如需要关闭本地预览,需要调用 stopPreview。
注:本方法仅适用于使用SDK采集视频,对于业务层自采集视频时,请不要调用。
|
int |
stopPreview()
该方法用于停止本地视频预览。
|
int |
switchCamera()
该方法用于在前置/后置摄像头间切换。
|
int |
useHardwareEncoder(boolean hdEncode)
是否开启硬编码
|
public static QHVCInteractiveKit getInstance()
public static java.lang.String getVersion()
public static void setDebugEnv(boolean debugEnv)
public void setPublicServiceInfo(java.lang.String channelId, java.lang.String appKey, java.lang.String userSign)
channelId
- 渠道Id,用于区分公司或部门下拥有多款应用。由直播云为应用程序开发者签发,如果没有,请向直播云申请。appKey
- 直播云为应用程序开发者签发的App Key。如果没有,请向直播云申请。userSign
- 用户签名。开发者需结合直播云提供的算法生成此 User Sign,用于服务器端用户验证。public int loadEngine(java.lang.String roomId, java.lang.String userId, java.lang.String sessionId, java.util.Map<java.lang.String,java.lang.String> optionInfo, QHVCInteractiveEventHandler interactCallBack)
roomId
- 房间IduserId
- 用户idsessionId
- 会话ID,用于标识业务会话请求,每一次完整的流程之后,该值需要重新设置optionInfo
- 可选字典,若需旁路直播功能等可通过该字典设置,如果业务准备使用视频云的直播服务,
可以通过applyforBypassLiveAddress接口申请推流服务。具体参数参见
QHVCInteractiveConstant.EngineOption
定义。interactCallBack
- 回调public int joinChannel()
public int leaveChannel()
public int setChannelProfile(int profile)
profile
- 指定频道的通话模式(profile)。支持两种模式:
QHLiveCloudConstant.CHANNEL_PROFILE_COMMUNICATION(通信模式:默认)
QHLiveCloudConstant.CHANNEL_PROFILE _LIVE_BROADCASTING (直播模式)public int enableVideo()
public int disableVideo()
public int enableLocalVideo(boolean enabled)
enabled
- true: 启用本地视频(默认) false: 禁用本地视频public int setVideoQualityParameters(boolean preferFrameRateOverImageQuality)
preferFrameRateOverImageQuality
- true: 画质和流畅度里,优先保证画质(默认),false: 画质和流畅度里,优先保证流畅度public int startPreview()
public int stopPreview()
public int enableAudio()
public int disableAudio()
public int setParameters(java.lang.String options)
options
- 必须是json格式public int setClientRole(int role)
role
- 直播的用户角色。 QHVCInteractConstant.CLIENT_ROLE_BROADCASTER :主播
QHVCInteractConstant.CLIENT_ROLE_AUDIENCE 观众public int setEnableSpeakerphone(boolean enabled)
enabled
- True:音频输出至扬声器 False:音频输出至听筒public boolean isSpeakerphoneEnabled()
public int enableAudioVolumeIndication(int interval, int smooth)
interval
- 指定音量提示的时间间隔。
<=0 :禁用音量提示功能
>0 :提示间隔,单位为毫秒。建议设置到大于 200 毫秒。smooth
- 平滑系数。默认可以设置为 3。public int muteLocalAudioStream(boolean muted)
muted
- True:麦克风静音 False:取消静音public int muteAllRemoteAudioStreams(boolean muted)
muted
- True:麦克风静音 False:取消静音public int muteRemoteAudioStream(java.lang.String uid, boolean muted)
uid
- 指定用户muted
- True:麦克风静音 False:取消静音public int setupLocalVideo(View view, int renderMode, java.lang.String uid)
view
- 视频显示视窗。renderMode
- 视频显示模式。
QHVCInteractConstant.RENDER_MODE_HIDDEN (1): 如果视频尺寸与显示视窗尺寸不一致,则视频流会按照显示视窗的比例进行周边裁剪或图像拉伸后填满视窗。
QHVCInteractConstant.RENDER_MODE_FIT(2): 如果视频尺寸与显示视窗尺寸不一致,在保持长宽比的前提下,将视频进行缩放后填满视窗。
QHVCInteractConstant.RENDER_MODE_ADAPTIVE(3):如果自己和对方都是竖屏,或者如果自己和对方都是横屏,使用RENDER_MODE_HIDDEN;如果对方和自己一个
竖屏一个横屏,则使用 RENDER_MODE_FIT。uid
- 本地用户ID, 与 joinchannel 方法中的 uid 保持一致。public int setupRemoteVideo(java.lang.Object view, int renderMode, java.lang.String uid, java.lang.String streamId)
view
- 视频显示视窗。renderMode
- 视频显示模式。
QHVCInteractConstant.RENDER_MODE_HIDDEN (1): 如果视频尺寸与显示视窗尺寸不一致,则视频流会按照显示视窗的比例进行周边裁剪或图像拉伸后填满视窗。
QHVCInteractConstant.RENDER_MODE_FIT(2): 如果视频尺寸与显示视窗尺寸不一致,在保持长宽比的前提下,将视频进行缩放后填满视窗。
QHVCInteractConstant.RENDER_MODE_ADAPTIVE(3):如果自己和对方都是竖屏,或者如果自己和对方都是横屏,使用 RENDER_MODE_HIDDEN;如果对方和自己一个竖屏一个横屏,则使用RENDER_MODE_FIT。uid
- 用户 ID,指定远端视频来自哪个用户。streamId
- 流ID,指定远端视频的流IDpublic int removeRemoteVideo(java.lang.String streamId, java.lang.String uid)
streamId
- 指定远端视频的流IDuid
- 用户ID,指定远端视频来自哪个用户public int setLocalRenderMode(int mode)
mode
- 设置视频显示模式。
QHVCInteractConstant.RENDER_MODE_HIDDEN (1): 如果视频尺寸与显示视窗尺寸不一致,则视频流会按照显示视窗的比例进行周边裁剪或图像拉伸后填满视窗。
QHVCInteractConstant.RENDER_MODE_FIT(2): 如果视频尺寸与显示视窗尺寸不一致,在保持长宽比的前提下,将视频进行缩放后填满视窗。
QHVCInteractConstant.RENDER_MODE_ADAPTIVE(3):如果自己和对方都是竖屏,或者如果自己和对方都是横屏,使用RENDER_MODE_HIDDEN;如果对方和自己一个竖屏一个横屏,则使用 RENDER_MODE_FIT。public int setRemoteRenderMode(java.lang.String uid, int mode)
uid
- 用户 IDmode
- 设置视频显示模式。public int switchCamera()
public int setVideoProfile(int profile, boolean swapWidthAndHeight)
profile
- 视频属性(Profile)。详见QHVCInteractConstant.VideoProfile中的定义。swapWidthAndHeight
- 是否交换宽和高。 true:交换宽和高 false:不交换宽和高(默认)public int setVideoProfileEx(int width, int height, int frameRate, int bitrate)
width
- 视频宽height
- 视频高frameRate
- 视频帧率bitrate
- 视频码率public int setCloudControlRole(java.lang.String role)
role
- 角色名称public int enableDualStreamMode(boolean enabled)
enabled
- 指定双流或者单流模式 true:双流 false:单流(默认)public int setLowStreamVideoProfile(int width, int height, int fps, int bitrate)
width
- 视频的宽度height
- 视频的宽度fps
- 帧率bitrate
- 码率 (单位:kbps)public int setRemoteVideoStream(java.lang.String uid, int streamType)
uid
- 用户 IDstreamType
- 设置视频流大小。 QHVCInteractConstant.VIDEO_STREAM_HIGH (0): 视频大流
QHVCInteractConstant.VIDEO_STREAM_LOW (1): 视频小流public int muteLocalVideoStream(boolean muted)
muted
- True: 不发送本地视频流 False: 发送本地视频流public int muteAllRemoteVideoStreams(boolean muted)
muted
- True: 停止播放接收到的所有视频流 False: 允许播放接收到的所有视频流public int muteRemoteVideoStream(java.lang.String uid, boolean muted)
uid
- 指定用户muted
- True: 停止播放接收到的视频流 False: 允许播放接收到的视频流public int setMixStreamInfo(QHVCInteractiveMixStreamConfig mixStreamConfig, QHVCInteractiveConstant.StreamLifeCycle lifeCycle)
mixStreamConfig
- 合流设置public int setVideoCompositingLayout(QHVCInteractiveMixStreamRegion[] mixStreamInfos)
mixStreamInfos
- 布局信息,请确保设置所有的视频流,包括主播的视频流。public int clearVideoCompositingLayout()
public int setAudioFrameCallback(QHVCInteractiveAudioFrameCallback audioFrameCallback)
audioFrameCallback
- 音频数据回调的callbackpublic int setLocalVideoExternalRender(QHVCInteractiveLocalVideoRenderCallback localVideoRenderCallback)
localVideoRenderCallback
- 本地视频回调的callbackpublic int setRemoteVideoExternalRender(java.lang.String uid, java.lang.String streamId, QHVCInteractiveRemoteVideoRenderCallback externalRenderCallback)
uid
- 用户 ID,指定远端视频来自哪个用户。streamId
- 流idexternalRenderCallback
- 远端视频回调的callbackpublic int setLogFile(java.lang.String filePath)
filePath
- log 文件的全路径名public int useHardwareEncoder(boolean hdEncode)
hdEncode
- true: 智能编码模式,优先走硬编,若硬编不支持,切换到软编 false:使用软编码public void openCollectingData()
public void closeCollectingData()
public QHVCInteractiveVideoSourceEvent getVideoSourceEvent()
public void destroy()
public com.qihoo.livecloud.tools.LiveCloudConfig getConfig()