• ThunderEngine 接口类提供所有可供应用程序调用的方法,同时使用到以下类或接口。

  • ThunderAudioFilePlayer 类接口提供了音频播放器管理相关接口。

  • 所有返回值为 int 型的 API,如无特殊说明,返回值 0 为调用成功,返回值小于 0 为调用失败,返回码详见 ThunderRet

ThunderEngine

createEngine

public static synchronized ThunderEngine createEngine(Context context,
                                                      String appId,
                                                      long sceneId,
                                                      ThunderEventHandler handler)

创建 ThunderEngine 实例并初始化。

说明
  • 目前 SDK 只支持一个 ThunderEngine 实例,即每个应用程序只能创建一个 ThunderEngine 对象。
  • ThunderEngine 中接口为同步调用(否则会特殊说明),建议在同一个线程调用接口。
  • SceneId用以区分同一个业务的不同场景,有助于按照场景进行数据分析。
  • 需要在主线程调用该方法。

注意:

  • 同一个AppID的用户才能互通。
参数
参数描述
contextAndroid Application 的上下文
appId为应用程序签发的 AppId
sceneId业务场景ID,用以区分业务场景的数据;例如同一个App同时有语音房、KTV、秀场直播等,可分别设置sceneId,数据统计后台可以根据sceneId统计分析不同场景下的数据。
如果不需要,可以填0
handlerThunderEventHandler 是一个提供了缺省实现的抽象类,ThunderEngine 通过该类通知 SDK 各种事件
返回
  • ThunderEngine 实例对象

createEngine2

public static synchronized ThunderEngine createEngine(ThunderEngineConfig config)

创建 ThunderEngine 实例并初始化,同时设置访问区域

说明:
  • 目前 SDK 只支持一个 ThunderEngine 实例,即每个应用程序只能创建一个 ThunderEngine 对象。
  • ThunderEngine 中接口为同步调用(否则会特殊说明),建议在同一个线程调用接口。
  • config中的sceneId用以区分同一个业务的不同场景,有助于按照场景进行数据分析。
  • 需要在主线程调用该方法。

注意:

  • 同一个AppID的用户才能互通。
参数
参数描述
config创建ThunderEngine的配置,详见 ThunderEngineConfig
返回
  • ThunderEngine 实例对象

createWithLoop

public static synchronized ThunderEngine createWithLoop(Context context,
                                                        String appId,
                                                        long sceneId,
                                                        ThunderEventHandler handler,
                                                        Looper loop)

创建 ThunderEngine 实例并初始化。

说明
  • 目前 SDK 只支持一个 ThunderEngine 实例,即每个应用程序只能创建一个 ThunderEngine 对象。
  • ThunderEngine 中接口为同步调用(否则会特殊说明),建议在同一个线程调用接口。
  • SceneId用以区分同一个业务的不同场景,有助于按照场景进行数据分析。

注意:

  • 同一个AppId的用户才能互通。
参数
参数描述
contextAndroid Application 的上下文
appId为应用程序开发者签发的 AppID
sceneId业务场景ID,用以区分业务场景的数据;例如同一个App同时有语音房、KTV、秀场直播等,可分别设置sceneId,数据统计后台可以根据sceneId统计分析不同场景下的数据。
如果不需要,可以填0
handlerThunderEventHandler 是一个提供了缺省实现的抽象类,ThunderEngine 通过该类通知 SDK 各种事件
loop和线程关联的Looper对象,指定 handler 回调函数在 loop 关联的线程中执行。
返回
  • ThunderEngine 实例对象

createWithLoop2

public static synchronized ThunderEngine createWithLoop(ThunderEngineConfig config,
                                                        Looper loop)

创建 ThunderEngine 实例并初始化,同时设置访问区域

说明
  • 目前 SDK 只支持一个 ThunderEngine 实例,即每个应用程序只能创建一个 ThunderEngine 对象。
  • ThunderEngine 中接口为同步调用(否则会特殊说明),建议在同一个线程调用接口。
  • config中的sceneId用以区分同一个业务的不同场景,有助于按照场景进行数据分析。

注意:

  • 同一个AppId的用户才能互通。
参数
参数描述
config创建ThunderEngine的配置,详见 ThunderEngineConfig
loop和线程关联的Looper对象,指定 handler 回调函数在 loop 关联的线程中执行。
返回
  • ThunderEngine 实例对象

destroyEngine

public static synchronized void destroyEngine()

销毁 ThunderEngine 实例。

说明
  • 该方法释放 SDK 使用的所有资源。
  • 有些应用程序只在用户需要时才进行语音通话,不需要时则将资源释放出来用于其他操作,该方法对这类程序可能比较有用。
  • 只要调用了destroyEngine, 用户将无法再使用该实例的方法,事件通知也不再被触发。
  • 如需再次使用通信功能,必须再次调用 createEngine 重新创建一个 ThunderEngine 实例。

注意:


getVersion

public static String getVersion()

获取 SDK 版本信息。

返回
  • SDK 版本信息

setArea

public int setArea(int area)

设置用户国家区域。

为适应国内外不同的法律法规,同时提供国内中心系统和国际中心系统,默认为国内中心系统。请参考以下几点进行设置:

  • 如果应用程序主要在国外开展业务,需要调用该接口设置为国外区域。
  • 国内中心系统和国际中心系统的用户不能互通,请务必保证同一个房间的用户在同一个系统。
  • 国内中心系统和国际中心系统同样是全球部署,支持全球访问。

注意:

  • joinRoom 前调用生效。国外用户必须调用,国内用户可以不调用。
  • 仅在 destroyEngine 时重置。
参数
参数描述
area用户国家区域,可选值见 AreaType 类属性
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setSceneId

public void setSceneId(long sceneId)

设置场景Id,用于给用户细分业务场景,不需要可不调用。

参数
参数描述
sceneId业务场景ID,用以区分业务场景的数据;例如同一个App同时有语音房、KTV、秀场直播等,可分别设置sceneId,数据统计后台可以根据sceneId统计分析不同场景下的数据。
如果不需要,可以填0

setMediaMode

public int setMediaMode(int mode)

设置媒体模式。

说明

注意:

参数
参数描述
mode媒体模式,可选值见 ThunderRtcProfile 类属性
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setRoomMode

public int setRoomMode(int mode)

设置房间模式。

说明
  • SDK默认使用直播模式 RoomConfig.THUNDER_ROOMCONFIG_LIVE
  • 进房间(joinRoom)前后都可以使用。
  • SDK 需知道应用程序的使用场景(例如通信模式或直播模式),从而使用不同的优化手段。

注意:

参数
参数描述
mode房间模式,可选值见 RoomConfig 类属性
返回
  • 0:成功。
  • <0: 失败,详见 错误码

joinRoom

public int joinRoom(byte[] token, String roomName, String uid)

加入房间。

  • 该方法让用户加入(音视频)通话房间,在同一个房间内的用户可以互相通话,多个用户加入同一个房间,开始群聊。
  • 如果在通话中,用户必须调用 leaveRoom 退出当前通话,才能进入下一个房间。

注意:

  • 使用不同 appId 的 应用不能互通。
  • 函数返回成功仅表示请求执行成功,加入房间成功的标志是收到 onJoinRoomSuccess 回调。
参数
名称描述
token鉴权所需,详见 Token鉴权
roomName房间名称(需保证一个AppId内唯一),只支持 [A,Z],[a,z],[0,9],-,_ 等字符的排列组合,且长度不能超过64个字节
uid用户ID,只支持 [A,Z],[a,z],[0,9],-,_ 等字符的排列组合,且长度不能超过64个字节
返回
  • 0:成功。
  • <0: 失败,详见 错误码

leaveRoom

public int leaveRoom()

离开房间,退出或则挂断当前通话。

注意:

  • 当调用 joinRoom 方法后,必须调用 leaveRoom 退出房间,否则无法再次加入房间进行下一次通话。
  • 该方法会清理房间内会话相关的所有资源,如果当前不在房间内,调用 leaveRoom 方法会失败。
返回
  • 0:成功。
  • <0: 失败,详见 错误码

updateToken

public int updateToken(byte[] token)

刷新Token。

Token具有时效性,当收到 onTokenWillExpire(Token即将过期)或 onTokenRequest(Token过期)回调时,客户端需重新调用该API刷新Token;否则Token过期后,SDK与服务器会断开连接,导致服务中断。

参数描述
token新Token,Token格式详见 Token鉴权
返回
  • 0:成功。
  • <0: 失败,详见 错误码

switchUserRole

public int switchUserRole(int role)

切换用户角色。

参数
参数描述
role用户角色类型,可选值详见 ThunderUserRole
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setAudioSourceType

public void setAudioSourceType(int sourceType)

设置音频开播模式。

参数
参数描述
sourceType音频开播模式,可选值详见 SourceType 类属性

setAudioConfig

public int setAudioConfig(int profile, int commutMode, int scenarioMode)

用于设置音频参数和应用场景。

注意:

参数
参数描述
profile音频类型,可选值详见:AudioConfig 类属性
commuMode交互模式,可选值详见:CommutMode 类属性
scenarioMode情景模式,可选值详见:ScenarioMode 类属性
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setMicVolume

public int setMicVolume(int volume)

设置麦克风音量。

参数
参数描述
volume音量,取值范围:[0, 400],默认值:100
返回
  • 0:成功。
  • <0: 失败,详见 错误码

stopLocalAudioStream

public int stopLocalAudioStream(boolean stop)

关闭/打开本地音频采集编码和推流。

注意:

参数
参数描述
stoptrue : 关闭本地音频采集、编码和推流
false : 打开本地音频采集、编码和推流
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableLocalAudioCapture

public int enableLocalAudioCapture(boolean enable);

打开/关闭本地音频采集

注意:

  • 需在"初始化"后调用;销毁引擎会自动关闭音频采集。
  • 使用 enableLocalAudioCapture,enableLocalAudioEncoder,enableLocalAudioPublisher 组合接口进行音频开播与使用 stopLocalAudioStream 进行音频开播是等效的。
  • enableLocalAudioCapture,enableLocalAudioEncoder,enableLocalAudioPublisher 组合接口提供更高级的音频开播方法;如果你只是简单开播,简单使用 stopLocalAudioStream 方法即可。
  • 如果已经使用 enableLocalAudioCapture,enableLocalAudioEncoder,enableLocalAudioPublisher 组合接口进行音频开播,建议不要再使用 stopLocalAudioStream 接口,以免功能覆盖产生疑惑,反之亦然。例如,先调用stopLocalAudioStream(false),再调用enableLocalAudioCapture(false),会关闭采集,但编码和推流还打开着;先调用stopLocalAudioStream(false),再调用enableLocalAudioEncoder(false),会关闭编码,但采集和推流还打开着;先调用enableLocalAudioEncoder(ture),再调用stopLocalAudioStream(true),会关闭采集、编码和推流;以此类推...
  • 如果调用 setAudioSourceType 设置发布方式为 THUNDER_PUBLISH_MODE_NONE 时,调用此接口失败。
  • 如果调用 setCustomAudioSource 开启外部推流,调用此接口失败。
参数
参数描述
enabletrue-打开本地音频采集
false-关闭本地音频采集
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableLocalAudioEncoder

public int enableLocalAudioEncoder(boolean enable);

打开/关闭本地音频编码

注意:

  • 需在"初始化"后调用;销毁引擎会自动关闭音频编码。
  • 使用 enableLocalAudioCapture,enableLocalAudioEncoder,enableLocalAudioPublisher 组合接口进行音频开播与使用 stopLocalAudioStream 进行音频开播是等效的。
  • enableLocalAudioCapture,enableLocalAudioEncoder,enableLocalAudioPublisher 组合接口提供更高级的音频开播方法;如果你只是简单开播,简单使用 stopLocalAudioStream 方法即可。
  • 如果你已经使用 enableLocalAudioCapture,enableLocalAudioEncoder,enableLocalAudioPublisher 组合接口进行音频开播,建议不要再使用 stopLocalAudioStream 接口,以免功能覆盖产生疑惑,反之亦然。
  • 如果调用 setAudioSourceType设置发布方式为 THUNDER_PUBLISH_MODE_NONE 时,调用此接口失败。
  • 如果调用 setCustomAudioSource 开启外部推流,调用此接口失败。
参数
参数描述
enabletrue-打开本地音频编码
false-关闭本地音频编码
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableLocalAudioPublisher

public int enableLocalAudioPublisher(boolean enable);

打开/关闭本地音频上行

注意:

  • 需在进频道成功,收到 onJoinRoomSuccess 回调后才能调用该接口;退出频道会自动关闭音频发送。
  • 使用 enableLocalAudioCapture,enableLocalAudioEncoder,enableLocalAudioPublisher 组合接口进行音频开播与使用 stopLocalAudioStream 进行音频开播是等效的。
  • enableLocalAudioCapture,enableLocalAudioEncoder,enableLocalAudioPublisher 组合接口提供更高级的音频开播方法;如果你只是简单开播,简单使用 stopLocalAudioStream 方法即可。
  • 如果你已经使用 enableLocalAudioCapture,enableLocalAudioEncoder,enableLocalAudioPublisher 组合接口进行音频开播,建议不要再使用 stopLocalAudioStream 接口,以免功能覆盖产生疑惑,反之亦然。
  • 建议使用 setCustomAudioSource 和此接口开播外部推流。
参数
参数描述
enabletrue- 打开本地音频上行
false-关闭本地音频上行
返回
  • 0:成功。
  • <0: 失败,详见 错误码

isAudioCaptureEnabled

public boolean isAudioCaptureEnabled();

本地音频设备是否可用。

注意:

  • 需在初始化后使用
返回
  • true:本地音频设备可用。
  • false 本地音频设备不可以。

isAudioEncoderEnabled

public boolean isAudioEncoderEnabled();

本地音频编码是否可用。

注意:

  • 需在初始化后使用
返回
  • true:本地音频编码器可用。
  • false 本地音频编码器不可用。

isAudioPublisherEnabled

public boolean isAudioPublisherEnabled();

本地音频开播是否可用。

注意:

  • 需在初始化后使用
返回
  • true:本地音频开播可用。
  • false 本地音频开播不可用。

stopAllRemoteAudioStreams

public int stopAllRemoteAudioStreams(boolean stop)

停止/接收所有远端音频数据。该接口按照如下规则处理:

  • SDK默认的状态是接收所有音频数据。
  • 设置都接收(stop=false)后,房间内的音频流都会自动订阅,之后可以通过stopRemoteAudioStream指定不订阅某条流。
  • 设置都不接收(stop=true)后,房间内的音频流都不会订阅,之后可以通过stopRemoteAudioStream指定订阅某条流。

注意:

参数
参数描述
stoptrue : 停止所有远端音频
false : 接收所有远端音频
返回
  • 0:成功。
  • <0: 失败,详见 错误码

stopRemoteAudioStream

public int stopRemoteAudioStream(String uid, boolean stop)

停止/接收指定用户音频数据。

注意:

参数
参数描述
uid远端用户的 uid
stoptrue:停止接收指定远端用户的音频流
false:开始接收指定远端用户的音频流
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setRemoteAudioStreamsVolume

public int setRemoteAudioStreamsVolume(String uid, int volume)

设置指定远端用户音频流在本地的播放音量。

参数
参数描述
uid远端用户的 uid
volume音量,取值范围:[0, 400],默认值:100
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setVideoEncoderConfig

public int setVideoEncoderConfig(ThunderVideoEncoderConfiguration yyVideoConfig)

设置视频编码配置。

  • SDK会根据参数config从配置服务器获取具体的视频编码参数进行视频编码。如果开发者有特殊的视频编码参数需求,可以联系技术支持进行个性化配置。
  • 如果视频已经开播,则更新视频编码参数,本地预览和远端订阅会看到更新后的视频效果。
  • 调用该接口后会触发回调 onVideoSizeChanged
参数
参数描述
yyVideoConfig视频编码配置,详见 ThunderVideoEncoderConfiguration
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setVideoEncoderParameters

public int setVideoEncoderParameters(ThunderVideoEncoderParam videoEncoderParam, List<ThunderRtcVideoTransParam> rtcVideoTransParams)

设置视频自定义编码配置以及自定义转码档位。

  • SDK会根据参数 videoEncoderParam 具体的视频编码参数进行视频编码。如果开发者有特殊的视频编码参数需求,可以联系技术支持进行个性化配置。
  • 如果视频已经开播,则更新视频编码参数,本地预览和远端订阅会看到更新后的视频效果。
  • 调用该接口后会触发回调 onVideoSizeChanged
参数
参数描述
videoEncoderParam视频编码配置,详见 ThunderVideoEncoderParam
rtcVideoTransParams视频转码档位列表,详见 ThunderRtcVideoTransParam
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setLocalVideoCanvas

public int setLocalVideoCanvas(ThunderVideoCanvas local)

设置本地视图。

不设置此视图,也可以打开预览和开播。设置此视图,则可以看到本地采集画面。

参数
参数描述
local视频渲染画布实例,详见 ThunderVideoCanvas
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableLocalVideoCapture

public int enableLocalVideoCapture(boolean enable)

开/关本地视频采集。

参数
参数描述
enabled是否开启本地视频采集:true-打开,false(默认)- 关闭
返回
  • 0:成功。
  • <0: 失败,详见 错误码

注意事项

该API需要摄像头使用权限,若当前 App 没有摄像头权限,SDK 会向用户申请。


startVideoPreview

public int startVideoPreview()

开启本地视频预览。

返回
  • 0:成功。
  • <0: 失败,详见 错误码

stopVideoPreview

public int stopVideoPreview()

停止本地视频预览。

返回
  • 0:成功。
  • <0: 失败,详见 错误码

startLocalVideoPreview

public int startLocalVideoPreview()

开启本地视频预览。

返回
  • 0:成功。
  • <0: 失败,详见 错误码

stopLocalVideoPreview

public int stopLocalVideoPreview()

停止本地视频预览。

返回
  • 0:成功。
  • <0: 失败,详见 错误码

setLocalCanvasScaleMode

public int setLocalCanvasScaleMode(int mode)

设置本地视图的渲染模式。

参数
参数描述
mode视图渲染显示模式,详见 ThunderVideoRenderMode
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setLocalVideoMirrorMode

public int setLocalVideoMirrorMode(int mode)

设置本地视频预览和推流时的镜像模式。

参数
参数描述
mode镜像模式,可选值详见 ThunderVideoMirrorMode
返回
  • 0:成功。
  • <0: 失败,详见 错误码

注意事项

  • 在调用 startVideoPreview 方法前后均可生效。
  • 该API只对前置摄像头生效,对后置摄像头不生效。
  • 默认,后置摄像头在预览和推流时,不启用镜像模式;前置摄像头在预览时启用镜像模式,推流时不启用镜像模式。

stopLocalVideoStream

public int stopLocalVideoStream(boolean stop)

停止/开启本地视频发送。

注意:

参数
参数描述
stoptrue:停止本地视频发送
false:开启本地视频发送
默认为关闭状态
返回
  • 0:成功。
  • <0: 失败,详见 错误码

getVideoEncoderParam

public ThunderVideoEncodeParam getVideoEncoderParam(ThunderVideoEncoderConfiguration videoConfig)

用户通过该方法传入视频编码配置,可获取对应的视频编码宽、高、帧率、码率编码信息。

参数
参数描述
videoConfig视频编码配置,详见 ThunderVideoEncoderConfiguration
返回

setCaptureReplaceImage

public int setCaptureReplaceImage(Bitmap bitmap)

设置本地固定的推流画面,只支持摄像头采集和录屏采集场景,外部推流场景不支持,镜像与后置摄像头一致。

  • 设置该接口后,bitmap会替换采集源的图像,作为固定采集输入源
  • 该接口在"SDK初始化"后调用,可在开采集或者开编码后任意时刻设置
  • 该设置直到销毁引擎后才重置,要恢复原来的采集源,必须传入null参数来重置
  • SDK内部不负责位图的内存释放,业务层在关闭固定推流画面后负责位图的回收
  • 在设置固定推流画面后,业务层回收位图(recycle()),行为未定义,业务层必须保证位图的有效性
参数
参数描述
Bitmap固定推流画面位图
传入参数为null的时候恢复为替换前的采集源(摄像头或者录屏)
已设置固定推流画面,传入新的bitmap,使用新的固定推流画面替换已设置的推流画面
当传入的图片的宽高比与设置的编码宽高比不一致时,SDK负责裁剪图片与编码宽高比一致
返回
  • 0:成功。
  • <0: 失败,详见 错误码

stopRemoteVideoStream

public int stopRemoteVideoStream(String uid, boolean stop)

是否订阅指定的远端用户视频。

参数
参数描述
uid远端用户的 uid
stoptrue:停止订阅指定视频流
false:订阅指定视频流
返回
  • 0:成功。
  • <0: 失败,详见 错误码

stopAllRemoteVideoStreams

public int stopAllRemoteVideoStreams(boolean stop)

是否订阅所有远端视频

  • 设置为都接收(stop=false)后,房间内的视频流都会自动订阅,之后可以通过stopRemoteVideoStream指定不订阅某条流。
  • 设置为都不接收(stop=true)后,房间内的视频流都不会订阅,之后可以通过stopRemoteVideoStream指定订阅某条流。
  • stopRemoteVideoStream没有优先级关系,后调用的接口生效
参数
参数描述
stoptrue:停止订阅所有视频流
false:订阅所有视频流
默认值为false
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setRemoteCanvasScaleMode

public int setRemoteCanvasScaleMode(String uid, int mode)

设置远端指定视图的拉伸模式。

说明: 该接口从V3.1.0开始已废弃,请改用 setRemoteCanvasMode

参数
参数描述
uid远端用户的 uid
mode远端视图拉伸模式,可选值详见 ThunderVideoRenderMode
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setRemoteCanvasMode

public int setRemoteCanvasMode(String uid, int renderMode, int mirrorMode)

设置远端指定视图的拉伸模式和镜像模式。

参数

参数描述
uid远端用户的ID
renderMode远端视图拉伸模式,可选值详见 ThunderVideoRenderMode
mirrorMode远端视图镜像模式,可选值详见 ThunderRemoteMirrorMode

返回

  • 0:成功。
  • <0: 失败,详见 错误码

setMultiVideoViewLayout

public int setMultiVideoViewLayout(ThunderMultiVideoViewParam params)

设置多路视频流在一个视图上显示时的布局参数

此函数多用于多人连麦场景。 当有多人连麦时,为了减少性能消耗,需要将多路视频流显示在一个视图 (View) 上。 调用此函数就是为了设置这多路视频流分别放置在视图中什么位置上。

同时支持设置背景图,布局背景图的显示位置。

参数
参数描述
params多人连麦视频在渲染视图上的布局参数,详见 ThunderMultiVideoViewParam
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setRemoteVideoCanvas

public int setRemoteVideoCanvas(ThunderVideoCanvas remote)

设置远端视频的渲染视图。

不设置此窗口,也可以订阅,但是没法显示视频。设置视图后才可以看到订阅的远端用户的视频画面。

参数
参数描述
remote显示视图实例,详见 ThunderVideoCanvas
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setRemotePlayType

@deprecated
public int setRemotePlayType(int remotePlayType)

设置远端用户视频在本地渲染视图的类型。默认为普通观众 view。

注意:

  • 该接口从 V3.3.0 开始已经废弃,观看场景无需再调用。
参数
参数描述
remotePlayType观众端渲染视图的类型,可选值详见 ThunderRtcRemotePlayType
返回
  • 0:成功。
  • <0: 失败,详见 错误码

getConnectionStatus

public int getConnectionStatus()

主动查询网络连接状态,初始化sdk后可调用。

返回

setLiveTranscodingTask

public int setLiveTranscodingTask(String taskId, LiveTranscoding transcoding)

添加/更新转码任务。

  • 调用该接口后,后端会启动混流转码任务,拉取设置的各路原流根据设置的布局进行混画混音工作。应用程序需要指定taskId用来区分不同的混流转码任务。
  • 混流过程中可以重复调用该接口来更新混流参数。同一个房间可以同时设置多个混流任务。
  • 需要进房间(joinRoom)后才能调用,退出房间会清空该配置。
  • 可以通过 addPublishTranscodingStreamUrl 接口给混流转码任务增加推流地址,混流转码操作完成后会将混合转码流向指定的地址推送过去。
  • 同一房间最大支持5个转码任务。
参数
参数描述
taskId转码任务标识,由业务管理,需保证房间内唯一,只支持[A,Z],[a,z],[0,9],等字符的排列组合,且长度不能超过20个字节
transcoding混流转码配置信息, 详见 LiveTranscoding
返回
  • 0:成功。
  • <0: 失败,详见 错误码

removeLiveTranscodingTask

public int removeLiveTranscodingTask(String taskId)

删除转码任务。

调用该接口后,后台会删除并停止混流任务,但是不会删除addPublishTranscodingStreamUrl添加的url。

参数
参数描述
taskId混流转码任务标识,由开发者进行生成及管理,需保证全局唯一性,只支持[A,Z],[a,z],[0,9]等字符的排列组合,且长度不能超过20个字节
返回
  • 0:成功。
  • <0: 失败,详见 错误码

addPublishTranscodingStreamUrl

public int addPublishTranscodingStreamUrl(String taskId, String url)

添加混流旁路推流地址。

调用该接口,将混合流推送到指定的CDN地址。

说明:

参数
参数描述
taskId转码任务标识,由用户管理生成,需保证全局唯一性,只支持由a-zA-Z0-9组成的20字符以内的字符集
urlRTMP协议的CDN推流地址,不支持中文等特殊字符,最大长度为512字节
注意: 某些CDN厂家可能不支持512字节,例如阿里云只支持256字节
返回
  • 0:成功。
  • <0: 失败,详见 错误码

removePublishTranscodingStreamUrl

public int removePublishTranscodingStreamUrl(String taskId, String url)

删除转码流的推流地址。

  • 调用该接口后,会停止将指定转码流推送到指定的CDN地址。
  • 每次调用删除一路推流地址,taskId+url确定一路,多次调用删除多路
  • 需要进房间(joinRoom)后才能调用
参数
参数描述
taskId转码任务标识,由应用程序生成,需保证全局唯一性,只支持由a-zA-Z0-9组成的20字符以内的字符集
url要删除的推流地址,格式为 RTMP。不支持中文等特殊字符
该地址长度不能超过 512 字节 注意:某些CDN厂家可能不支持512字节,例如阿里云只支持256字节。
返回
  • 0:成功。
  • <0: 失败,详见 错误码

addPublishOriginStreamUrl

public int addPublishOriginStreamUrl(String url)

添加源流的旁路推流地址。

调用该API后,SDK会将主播当前音视频源流推送到指定的CDN地址。

说明:

参数
参数描述
urlRTMP协议的CDN推流地址,不支持中文等特殊字符,最大长度为512字节
注意: 某些CDN厂家可能不支持512字节,例如阿里云只支持256字节
返回
  • 0:成功。
  • <0: 失败,详见 错误码

removePublishOriginStreamUrl

public int removePublishOriginStreamUrl(String url)

删除原流推流地址。

调用该接口后,会停止将主播当前音视频流推送到指定的CDN地址。

参数
参数描述
urlRTMP协议的CDN推流地址,不支持中文等特殊字符,最大长度为512字节
注意: 某些CDN厂家可能不支持512字节,例如阿里云只支持256字节
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableMixVideoExtraInfo

public int enableMixVideoExtraInfo(boolean enable)

开启混画带媒体次要信息,例如:混画视频中带布局信息。 开启后在观众端播放此混画流时能收到 onRecvMixVideoInfo 回调

参数
参数描述
enabletrue: 打开
false: 关闭
默认关闭
返回
  • 0:成功。
  • <0: 失败,详见 错误码

startAudioSaver

public boolean startAudioSaver(String fileName, int saverMode, int fileMode)

开始将音频数据保存成aac格式的文件。

说明: 该接口从v3.1.0开始已经废弃,请改用 startAudioRecord.

参数
参数描述
fileName文件保存路径,必须是完整的绝对路径,包括文件名,文件名的后缀必须是.aac。其中保存文件的目录必须是已经创建好的,该接口不提供创建文件夹的功能。例如:/sdcard/helloworld.aac
saverMode音频保存模式,可选值详见 AudioSaverMode 类属性
fileMode音频文件写入模式,可选值详见 AudioSaverWfMode 类属性
返回
  • true: 方法调用成功
  • false: 方法调用失败

stopAudioSaver

public boolean stopAudioSaver()

停止将音频数据保存成aac格式的文件。

说明: 该接口从v3.1.0开始已经废弃,请改用 stopAudioRecord

返回
  • true: 方法调用成功
  • false: 方法调用失败

startAudioRecord

public int startAudioRecord(String fileName, int saverMode, int sampleRate, int quality)

开始音频录制,并保存为AAC或WAV格式的文件。

说明

  • 该接口需要在 joinRoom 之后调用。如果调用 leaveRoom 时还在录音,录音会自动停止。

参数

参数描述
fileName文件保存路径,必须是完整的绝对路径,包括文件名,文件名的后缀必须是.aac或.wav。其中保存文件的目录必须是已经创建好的,该接口不提供创建文件夹的功能。例如:/sdcard/helloworld.aac
saverMode音频保存模式,可选值详见 AudioSaverMode 类属性
sampleRate录音采样率 (Hz),可设置为 16000,(默认)32000,44100 或 48000
quality音频保存音质,可选值详见 AudioSaverQuality 类属性

返回


stopAudioRecord

public int stopAudioRecord()

停止音频录制。

返回


addSubscribe

public int addSubscribe(String roomId, String uid)

跨房间订阅指定用户的流。

在已加入房间的前提下,去订阅其他房间的音视频流。即需要收到 onJoinRoomSuccess (加入房间成功回调)之后才能调用,退出房间会清空该配置。

参数
参数描述
roomId房间号,只支持 [A,Z],[a,z],[0,9],-,_ 等字符的排列组合,且长度不能超过64个字节
uid用户ID,想要订阅的音视频流对应的主播 uid
返回
  • 0:成功。
  • <0: 失败,详见 错误码

removeSubscribe

public int removeSubscribe(String roomId, String uid)

取消跨房间订阅指定用户的流。

  • 取消订阅其他房间的音视频流,与 addSubscribe 接口作用相反。同样需要收到 onJoinRoomSuccess(加入房间成功回调)之后才能调用。
参数
参数描述
roomId房间号,只支持 [A,Z],[a,z],[0,9],-,_ 等字符的排列组合,且长度不能超过64个字节
uid用户ID,想要取消订阅的音视频流对应的主播 uid
返回
  • 0:成功。
  • <0: 失败,详见 错误码

subscribeRoom

public int subscribeRoom(String roomId)

跨房间订阅指定房间。

说明:

参数
参数类型描述
roomIdIN房间号【只支持[A,Z],[a,z],[0,9],-,_,等字符的排列组合,且长度不能超过64个字节】
返回
  • 0: 成功。
  • <0: 失败,详见 错误码

unsubscribeRoom

public int unsubscribeRoom(String roomId)

退订指定房间。

说明:

参数
参数类型描述
roomIdIN房间号【只支持[A,Z],[a,z],[0,9],-,_,等字符的排列组合,且长度不能超过64个字节】
返回
  • 0: 成功。
  • <0: 失败,详见 错误码

isFrontCamera

public boolean isFrontCamera()

是否为前置摄像头

返回
  • true: 是前置摄像头
  • false: 是后置摄像头

isCameraFocusSupported

public boolean isCameraFocusSupported();

摄像头是否支持手动对焦

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
返回
  • true: 支持手动对焦
  • false: 不支持手动对焦

isCameraExposurePositionSupported

public boolean isCameraExposurePositionSupported();

摄像头是否支持手动曝光

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
返回
  • true: 支持手动曝光
  • false: 不支持手动曝光

isCameraZoomSupported

public boolean isCameraZoomSupported();

摄像头是否支持缩放

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
返回
  • true: 支持缩放
  • false: 不支持缩放

getCameraMaxZoomFactor

public float getCameraMaxZoomFactor();

得到摄像头的最大缩放值

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
返回
  • 调用成功返回最大的摄像头缩放值
  • 失败返回<0, 返回码详见 ThunderRet

setCameraZoomFactor

public int setCameraZoomFactor(float zoomFactor);

设置摄像头缩放比例

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
参数
参数描述
zoomFactor相机缩放比例,有效范围从 1.0 到最大缩放
返回
  • 方法调用成功:返回设置的 zoomFactor 值
  • 方法调用失败:返回值 < 0。返回码详见 ThunderRet

isCameraTorchSupported

public boolean isCameraTorchSupported();

检测设备是否支持闪光灯常开

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 一般情况下,App 默认开启前置摄像头,因此如果你的前置摄像头不支持闪光灯常开,直接使用该方法会返回 false。如需判断后置摄像头请先调用switchFrontCamera进行切换
返回
  • true: 设备支持闪光灯常开
  • false: 设备不支持闪光灯常开

isCameraTorchOpen

public boolean isCameraTorchOpen();

手电筒是否开启。

说明:

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头,如需判断后置摄像头请先调用switchFrontCamera进行切换
  • 切换了摄像头(调用了switchFrontCamera),需要重新调用
返回
  • true: 手电筒开启;false: 手电筒没有开启

setCameraTorchOn

public int setCameraTorchOn(boolean isOn);

设置是否打开闪光灯

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
参数
参数描述
isOntrue: 打开, false: 关闭
返回
  • 0:成功。。
  • < 0: 失败,详见 错误码

setCameraFocusPositionInPreview

public int setCameraFocusPositionInPreview(float posX, float posY);

设置手动对焦位置,并触发对焦。成功调用该方法后,本地会触发 onCameraFocusAreaChanged 回调。

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
参数
参数描述
posX触摸点相对于视图的横坐标
posY触摸点相对于视图的纵坐标
返回
  • 0:成功。。
  • < 0: 失败,详见 错误码

setCameraExposurePosition

public int setCameraExposurePosition(float posX, float posY);

设置手动曝光位置。成功调用该方法后,本地会触发 onCameraExposureAreaChanged 回调。

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
参数
参数描述
posX触摸点相对于视图的横坐标
posY触摸点相对于视图的纵坐标
返回
  • 0:成功。。
  • < 0: 失败,详见 错误码

isCameraAutoFocusFaceModeSupported

public boolean isCameraAutoFocusFaceModeSupported();

检测设备是否支持人脸对焦功能。

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
返回
  • true: 设备支持人脸对焦功能
  • false: 设备不支持人脸对焦功能

setCameraAutoFocusFaceModeEnabled

public int setCameraAutoFocusFaceModeEnabled(boolean enable);

设置是否开启人脸对焦功能

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
参数
参数描述
enabletrue: 开启人脸对焦功能, false: 关闭人脸对焦功能
返回
  • 0:成功。。
  • < 0: 失败,详见 错误码

getVideoCaptureOrientation

public int getVideoCaptureOrientation();

获取摄像头方向

  • 调用前需要先打开摄像头,可以通过isCameraOpen判断摄像头是否打开
  • 默认判断前置摄像头是否支持该功能,如需判断后置摄像头请先调用switchFrontCamera进行切换
返回

setVideoCaptureOrientation

public int setVideoCaptureOrientation(int orientation)

设置摄像头开播角度(旋转0/90/180/270度)。

  • 在调用 startVideoPreview 方法前后均可生效。
  • 不调用该方法时默认摄像头开播角度为竖屏(旋转0度)直播。
参数
参数描述
orientation摄像头开播角度。可选值详见 ThunderVideoCaptureOrientation
返回
  • 0:成功。
  • <0: 失败,详见 错误码

switchFrontCamera

public int switchFrontCamera(boolean bFront)

切到前/后置摄像头。

  • 需在开启预览 startVideoPreview 后调用。
  • 不调用该方法时默认启动前置摄像头。
参数
参数描述
bFronttrue:启用前置摄像头 false:启用后置摄像头
返回
  • 0:成功。
  • <0: 失败,详见 错误码

isCameraOpen

public boolean isCameraOpen()

摄像头是否打开

返回
  • true: 摄像头打开
  • false: 摄像头没打开

setVideoWatermark

public int setVideoWatermark(ThunderBoltImage watermark)

给本地开播的视频流设置水印。

  • 该接口将一张图片作为水印编码到本地开播的视频流里,所有观众都能看到。
  • 只支持png格式的图片,如果图片实际大小跟watermark设置的width、height不一致,sdk会按设置的尺寸进行裁剪。
  • 目前只支持设置一张水印图片,多次调用会覆盖,设置为null则取消水印。
  • 屏幕旋转时,水印会跟着画面一起旋转。
参数
参数描述
watermark水印图片,详见 ThunderBoltImage;设置为null表示取消水印
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableLocalDualStreamMode

public int enableLocalDualStreamMode(boolean enabled);

打开/关闭视频双流模式。

说明:

  • 在“初始化"后且视频开播前调用,仅在 destroyEngine 时重置。
  • 使用该方法设置单流(默认)或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。
  • 大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
参数
参数描述
enabled是否启用双流模式:YES-双流模式,NO-单流模式(默认)
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setDefaultRemoteVideoStreamType

public int setDefaultRemoteVideoStreamType(int type);

设置默认订阅的视频流类型。

说明:

  • 在"初始化"后且进房间前调用,在 destroyEngine 会重置。
  • 接收远端视频流的类型优先判断 changeRemoteVideoStreamType 设置的值,没有的话再使用该函数设置的值,如果这两个接口都没调用,默认订阅远端视频流都是大流。
参数
参数描述
type设置默认接收的视频流类型,参见 ThunderVideoStreamType
返回
  • 0:成功。
  • <0: 失败,详见 错误码

changeRemoteVideoStreamType

public int changeRemoteVideoStreamType(String uid, int type);

设置订阅的视频流类型。

注意:

  • 在"初始化"后调用,在 destroyEngine 和 leaveRoom 时会重置。
  • 发送端如果调用 enableLocalDualStreamMode(true) 开启双流模式,接收端可选择接收大流还是小流,如果发送端不开启双流模式,接收端默认接收大流。
  • 接收远端视频流的类型优先判断该接口设置的值,没有的话再使用 setDefaultRemoteVideoStreamType 设置的值,如果这两个接口都没调用,默认订阅远端视频流都是大流。
参数
参数描述
uid用户 UID
type视频流类型,参见 ThunderVideoStreamType
返回
  • 0:成功。
  • <0: 失败,详见 错误码

captureRemoteScreenShot

public Bitmap captureRemoteScreenShot(String uid)

获取远端视频截图。

  • 需要"初始化"后调用
参数
参数描述
uid远端用户uid
返回
  • 对应uid的远端用户视频截图的位图,在非正常播放渲染远端视频流时返回null

captureLocalScreenShot

public Bitmap captureLocalScreenShot()

获取本地视频截图。

  • 需要在"开启视频预览"后调用
返回
  • 本地视频截图的位图,在非正常渲染本地视频流时返回null

setVoiceChanger

public void setVoiceChanger(int mode)

设置变声模式。

参数
参数描述
mode变声模式,可选值详见 VoiceChangerMode 类属性

setSoundEffect

public void setSoundEffect(int mode)

设置音效模式。

参数
参数描述
mode音效模式,可选值详见 SoundEffectMode 类属性

setEnableEqualizer

public int setEnableEqualizer(boolean enabled)

开/关本地语音均衡器。

参数
参数描述
enabledtrue: 打开
false: 关闭
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setEqGains

public int setEqGains(final int[] gains)

设置均衡器参数。

参数
参数描述
gains每个元素的取值范围为:-12 <= gains[i] <= 12, 其中i取值范围是 0<= i <=10
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setEnableReverb

public int setEnableReverb(boolean enabled)

开/关本地音效混响。

参数
参数描述
enabledtrue: 打开
false: 关闭
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setReverbExParameter

public int setReverbExParameter(ReverbExParameter param)

设置音效混响参数。

参数
参数描述
param音效混响参数,详见 ReverbExParameter
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setEnableCompressor

public int setEnableCompressor(boolean enabled)

开/关音效压缩器。

说明: 该接口已经废弃。

参数
参数描述
enabledtrue: 打开
false: 关闭
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setCompressorParam

public int setCompressorParam(CompressorParam param)

设置音效压缩器参数。

说明: 该接口已经废弃。

参数
参数描述
param音效压缩器参数,详见 CompressorParam
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setEnableLimiter

public int setEnableLimiter(boolean enabled)

开/关压限器。

参数
参数描述
enabledtrue: 打开
false: 关闭
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setLimiterParam

public int setLimiterParam(LimterParam param) 

设置压限器参数。

参数
参数描述
param压限器参数,详见 LimterParam
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setVoicePitch

public int setVoicePitch(float pitch) 

设置语音音调。

注意:

  • 需要"初始化"后调用,仅在destroyEngine时重置
  • pitch取值越小,则音调越低。
参数
参数描述
pitch语音音调,参数范围:[-12, 12];默认值为0
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableVoicePosition

public int enableVoicePosition(boolean enable)

开启/关闭远端用户的语音立体声。

注意:

参数
参数描述
enabletrue : 开启远端用户的语音立体声
false : 关闭远端用户的语音立体声
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setRemoteUidVoicePosition

public int setRemoteUidVoicePosition(String uid, int azimuth, int gain)

设置远端用户声音的空间位置和音量。

参数
参数描述
uid远端用户的uid
azimuth设置远端用户声音出现的位置,取值范围[-90,90], 0:(默认)声音出现在正前方, -90:声音出现在左边, 90:声音出现在右边
gain设置远端用户声音的音量,取值范围[0,100], 默认值为 100.0,表示该用户的原始音量。取值越小,则音量越低
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setAudioVolumeIndication

public int setAudioVolumeIndication(int interval,
                                        int moreThanThd,
                                        int lessThanThd,
                                        int smooth)

调用该方法开启是否回调说话者音量提示。

  • 调用该方法后,SDK会周期性得反馈当前说话的用户和说话者的音量。由回调接口 onPlayVolumeIndication 返回。

注意:

  • 仅在destroyEngine时重置。
  • 不含本地麦克风采集或者文件播放的声音音量。
参数
参数描述
interval回调时间间隔,单位为毫秒,
<=0时: 禁用SDK的音量提示功能
>0时: 以此数值作为时间间隔启用音量提示;建议大于200毫秒,默认值为0
moreThanThd从 < moreThanThd 到 >= moreThanThd,立即回调一次(此时不受interval约束)
<= 0无效,取值范围:[0,100],默认 值:0
lessThanThd从 >= lessThanThd 到 < lessThanThd,立即回调一次(此时不受interval约束)
<= 0无效,取值范围:[0,100],默认 值:0
smooth暂无作用, 填0即可
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableCaptureVolumeIndication

public int enableCaptureVolumeIndication(int interval,
                                             int moreThanThd,
                                             int lessThanThd,
                                             int smooth)

启用采集音量提示。

调用该API后,SDK会在预设间隔触发 onCaptureVolumeIndication 向App反馈麦克风采集音量值和音量采集时间。

参数
参数描述
interval回调时间间隔,单位为毫秒,
<= 0 时: 禁用采集音量提示功能
> 0 时: 以此数值作为时间间隔启用采集音量提示;默认值为0
moreThanThd从 < moreThanThd 到 >= moreThanThd,立即回调一次(此时不受interval约束)
<= 0 无效,默认 = 0
lessThanThd从 >= lessThanThd到 < lessThanThd,立即回调一次(此时不受interval约束)
<= 0 无效,默认 = 0
smooth暂无作用, 填0即可
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableLoudspeaker

public int enableLoudspeaker(boolean enabled)

调用该方法以开启或关闭扬声器播放。

  • 该方法将语音路由强制设置为扬声器(外放)。
参数
参数描述
enabledtrue:扬声器播放
false:听筒播放
返回
  • 0:成功。
  • <0: 失败,详见 错误码

isLoudspeakerEnabled

public boolean isLoudspeakerEnabled()

查询扬声器启用状态。

返回
  • true:扬声器播放
  • false:非扬声器播放

setLoudSpeakerVolume

public int setLoudSpeakerVolume(int volume)

设置扬声器音量。

参数
参数描述
volume音量,取值范围:[0, 400],默认值:100
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setEnableInEarMonitor

public int setEnableInEarMonitor(boolean enable)

开/关耳返。

参数
参数描述
enabledtrue:打开
false:关闭
默认为关闭状态
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setEarMonitoringVolume

public int setEarMonitoringVolume(int volume)

设置耳返音量。

注意

需要"初始化"后调用,仅在destroyEngine时重置

参数
参数描述
volume音量,取值范围:[0, 100],默认值:100
返回
  • 0:成功。
  • <0: 方法调用失败。返回码详见 ThunderRet

adaptToSystemKaraoke

public int adaptToSystemKaraoke(boolean enable)

是否对硬件耳返的机型进行适配。

说明:

  • 需要"初始化"后进房间前调用,设置为 true,SDK对支持系统耳返的机型做音频采集播放 API 的适配。
  • 该接口主要是为了适配用系统耳返用,如果没有使用系统耳返,建议不需要调用此接口。
参数
参数描述
enableSDK是否启用机型适配:true-是,false-否
返回
  • 0:成功。
  • <0: 方法调用失败。返回码详见 ThunderRet

enableEchoDetector

public int enableEchoDetector(boolean enabled)

开/关回声检测。

  • 需要"初始化"后调用,仅在destroyEngine时重置,检测结果会通过onEchoDetectResult通知
参数
参数描述
enabledtrue:启动回声检测;false:关闭回声检测;默认为false
返回
  • 0:成功。
  • <0: 方法调用失败。返回码详见 ThunderRet

enableHowlingDetector

public int enableHowlingDetector(boolean enabled)

启动/关闭啸叫检测。

  • 需要"初始化"后调用,仅在destroyEngine时重置,检测结果会通过onHowlingDetectResult通知
参数
参数描述
enabledtrue:启动啸叫检测;false:关闭啸叫检测;默认为false
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableMicDenoise

public int enableMicDenoise(boolean enabled)

开/关降噪处理。

  • 需要"初始化"后调用,仅在destroyEngine时重置
参数
参数描述
enabledtrue:启动降噪处理;false:关闭降噪处理。
返回
  • 0:成功。
  • <0: 方法调用失败。返回码详见 ThunderRet

isMicDenoiseEnabled

public boolean isMicDenoiseEnabled()

查询是否已打开降噪处理。

返回
  • true: 当前打开降噪处理
  • false: 当前关闭降噪处理

注意事项

该接口需在需要初始化后调用。


enableAGC

public int enableAGC(boolean enabled)

开/关AGC。

  • 需要"初始化"后调用,仅在destroyEngine时重置
参数
参数描述
enabledtrue:启动AGC处理;false:关闭AGC处理。
返回
  • 0:成功。
  • <0: 方法调用失败。返回码详见 ThunderRet

enableAIDenoise

public int enableAIDenoise(boolean enabled)

开/关降噪处理。

  • 需要"初始化"后调用,仅在destroyEngine时重置
参数
参数描述
enabledtrue:启动AI降噪处理;false:关闭AI降噪处理。
返回
  • 0:成功。
  • <0: 方法调用失败。返回码详见 ThunderRet

enableLocalSpeakingDetector

public int enableLocalSpeakingDetector(boolean enabled)

启动/关闭本地说话状态检测。

  • 需要"初始化"后调用,仅在destroyEngine时重置,检测结果会通过onLocalSpeakingState通知
参数
参数描述
enabledtrue:启动本地说话状态检测;false:关闭本地说话状态检测。
返回
  • 0:成功。
  • <0: 方法调用失败。返回码详见 ThunderRet

sendMediaExtraInfo

public int sendMediaExtraInfo(java.nio.ByteBuffer data, int dataLen)

发送媒体次要信息。 当有视频上行的时候就只用视频通道发送,否则用音频通道。

具体约束如下:

  • 发送者必须进入房间,音频开播成功之后调用
  • 只有音频开播(纯音频模式开播或音视频模式下只开播音频)调用频率最快为100ms一次,媒体次要信息大小不超过200字节
  • 音视频模式下有视频开播调用频率不能超过帧率,次要信息不超过2048字节。例:推流采用默认帧率15fps,即调用频率不能超过 1000/15=66.7 ms/次
  • 可能存在丢包情况

通过 onSendMediaExtraInfoFailedStatus 获得发送媒体次要信息失败的原因。 通过 onRecvMediaExtraInfo 接口函数,接收其他用户发来的媒体次要信息。

参数
参数描述
data需要传输的媒体次要信息数据,必须使用ByteBuffer.allocateDirect(int)创建
dataLen媒体次要信息数据长度,
只有音频开播(纯音频模式开播或音视频模式下只开播音频), 媒体次要信息大小不超过200字节,
音视频模式下有视频开播,次要信息不超过2048字节
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setMediaExtraInfoCallback

public int setMediaExtraInfoCallback(IThunderMediaExtraInfoCallback callback)

设置媒体次要信息的回调监听。

参数
参数描述
callback媒体次要信息回调实例对象,详见 IThunderMediaExtraInfoCallback
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableAudioPlaySpectrum

public void enableAudioPlaySpectrum(boolean enable)

启用/关闭音频播放频谱数据回调(onAudioPlaySpectrumData)。

启用后,SDK会将播放的音频的频谱数据通过 onAudioPlaySpectrumData 回调函数中收到回调

参数
参数描述
enable是否启用 onAudioPlaySpectrumData:YES-启用,NO-关闭(默认)

setAudioPlaySpectrumInfo

public void setAudioPlaySpectrumInfo(int spectrumLen, int notifyIntervalMS) 

设置音频播放频谱数据回调信息。

参数
参数描述
spectrumLen频谱数据的长度 [12 - 256],默认是256
notifyIntervalMS频谱回调的时间间隔,必须是10的倍数,默认是30MS

registerAudioFrameObserver

public int registerAudioFrameObserver(IAudioFrameObserver observer)

注册音频帧观测器。

参数
参数描述
observer音频帧数据观测器对象,可获取音频帧数据并加以处理, 详见 IAudioFrameObserver
如果传入 null, 则取消注册
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setMixedAudioFrameParameters

public int setMixedAudioFrameParameters(int sampleRate, int channels, int samplesPerCall)

设置录制与播放声音混音后的数据格式。

参数
参数描述
sampleRate采样率
channels通道数:1-单声道、2-双声道
samplesPerCall采样点数
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setRecordingAudioFrameParameters

public int setRecordingAudioFrameParameters(int sampleRate, int channel, int mode, int samplesPerCall)

设置回调采集数据的格式。

参数
参数描述
sampleRate指定回调音频数据的采样率,可设置为 8000,16000,32000,44100 或 48000
channel指定回调音频数据的通道数;1:单声道,2:双声道
mode指定对回调音频数据的操作模式,详见 ThunderAudioRawFrameOperationMode
samplesPerCall指定回调音频数据的采样点数,如转码推流应用中通常为 1024。samplesPerCall = (int)(sampleRate × sampleInterval),其中:sampleInterval ≥ 0.01,单位为秒。
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setPlaybackAudioFrameParameters

public int setPlaybackAudioFrameParameters(int sampleRate, int channel, int mode, int samplesPerCall)

设置音频播放的原始数据使用模式。

参数
参数描述
sampleRate指定回调音频数据的采样率,可设置为 8000,16000,32000,44100 或 48000
room指定回调音频数据的通道数;1:单声道,2:双声道
mode指定对回调音频数据的操作模式,详见 ThunderAudioRawFrameOperationMode
samplesPerCall指定回调音频数据的采样点数,如转码推流应用中通常为 1024。samplesPerCall = (int)(sampleRate × sampleInterval),其中:sampleInterval ≥ 0.01,单位为秒。
返回
  • 0:成功。
  • <0: 失败,详见 错误码

registerVideoCaptureTextureObserver

public int registerVideoCaptureTextureObserver(IGPUProcess observer)

注册采集视频纹理数据观测器对象,用于美颜等处理等。

说明: 该接口已经废弃,请改用 registerVideoCaptureTextureFrameObserver

参数
参数描述
observer采集视频纹理数据观测器对象实例,可获取每一帧video的渲染纹理数据并加以处理, 详见 IGPUProcess
如果传入 null, 则取消注册
返回
  • 0:成功。
  • <0: 失败,详见 错误码

registerVideoCaptureTextureFrameObserver

public int registerVideoCaptureTextureFrameObserver(VideoTextureFrameObserver observer)

注册采集视频纹理数据观测器对象,用于美颜等处理等。

参数
参数描述
observer采集视频纹理数据观测器对象实例,可获取每一帧video的渲染纹理数据并加以处理, 详见 VideoTextureFrameObserver
如果传入 null, 则取消注册
返回
  • 0:成功。
  • <0: 失败,详见 错误码

registerVideoCaptureFrameObserver

public int registerVideoCaptureFrameObserver(IVideoCaptureObserver observer)

注册摄像头采集数据观测器对象。

参数
参数描述
observer摄像头采集数据观测器对象实例,可获取video camera yuv采集数据和video渲染数据, 详见 IVideoCaptureObserver
如果传入 null, 则取消注册
返回
  • 0:成功。
  • <0: 失败,详见 错误码

registerVideoCaptureFrameDataObserver

public int registerVideoCaptureFrameDataObserver(IVideoCaptureFrameObserver observer)

注册摄像头采集数据观测器对象。在使用registerVideoCaptureFrameObserver之后,使用此接口会报错。此接口会将摄像头的采集数据封装成VideoFrame返回给开发者。

参数
参数描述
observer摄像头采集数据观测器对象实例,可获取video camera yuv采集数据和video渲染数据, 详见 IVideoCaptureFrameObserver
如果传入 null, 则取消注册
返回
  • 0:成功。
  • <0: 失败,详见 错误码

registerVideoDecodeFrameObserver

public int registerVideoDecodeFrameObserver(String uid, IVideoDecodeObserver observer)

给指定用户注册解码后YUV(I420)视频数据观测器对象。

参数
参数描述
uid需要监测的用于 uid
observer解码后视频数据观测器对象,可获取解码后的视频数据并加以处理, 详见 IVideoDecodeObserver
如果传入 null, 则取消注册
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setCustomAudioSource

public int setCustomAudioSource(boolean enabled, int sampleRate, int channel)

设置外部音频推流源采集参数。

参数
参数描述
enabled是否开启外部音频采集。
true:开启 false:关闭(默认)
sampleRate采样率,可设置为 8000,16000,32000,44100 或 48000
channel通道数(最多支持两个声道)
返回
  • 0:成功。
  • <0: 失败,详见 错误码

pushCustomAudioFrame

public int pushCustomAudioFrame(byte[] data, long timeStamp)

推送外部源音频帧。

参数
参数描述
data外部PCM音频帧数据
timeStamp外部音频帧的时间戳,用于和外部视频源同步
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setCustomVideoSource

public int setCustomVideoSource(ThunderCustomVideoSource videoSource)

设置自定义视频源。

用户需要实现 ThunderCustomVideoSource 接口,监听相应的方法,在 onInitialize 函数中,使用 consumeByteArrayFrame 函数将外部视频流上行。 其中,3.3版本新增 consumeVideoFrame 函数替代consumeByteArrayFrame 实现外部视频流上行推流,支持纹理或者YUV两种类型,内部封装新增支持采集到编码分辨率的裁剪模式设置;

参数
参数描述
videoSource外部视频源,详见 ThunderCustomVideoSource
返回
  • 0:成功。
  • <0: 失败,详见 错误码

注意事项 调用该API前,需先调用 setLocalVideoCanvas 实现视频本地渲染。


setRtcDefaultTransIdInAuto

public int setRtcDefaultTransIdInAuto(int defaultTransIdInAuto)

使用自动档位模式时,拉流的起始档位。

  • 请在“初始化”后调用此接口,仅适用于直播模式。
  • 当且仅当 setSubscribeVideoTransId 里的参数 subTransId 为255时,必须调用该接口。
  • 起始档位建议与开播 setVideoEncoderParameters 设置的 rtcVideoTransParams 中的 rtcVideoTransId 对应(开播设置的参数会通过onRemoteVideoTransId回调);如果主播无此 rtcVideoTransId,那么会匹配最接近的rtcVideoTransId 或源流。
  • 如果用户在非直播模式下设置时,会返回错误值-32。
参数[](#setRtcDefaultTransIdInAuto
参数描述
defaultTransIdInAuto拉流的起始档位,范围:[0,254]
0(默认)-源流,其他-转码
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setSubscribeVideoTransId

public int setSubscribeVideoTransId(String uid, int subTransId)

设置拉流的档位。

参数
参数描述
uid主播UID
subTransId档位,范围:[0,254]
0(默认)-源流,1-254-转码档, 255-自动档,调用 leaveRoom 后重置
返回
  • 0:成功。
  • <0: 失败,详见 错误码

getPlayingVideoTransId

public int getPlayingVideoTransId(String uid)

获取正在播放的转码档位。

参数
参数描述
uid主播UID
返回
  • 返回正在播放的转码档位信息

sendUserAppMsgData

public int sendUserAppMsgData(byte[] msgData)

在房间内发送开发者自定义广播消息。

该接口通过媒体UDP通道发送消息,具有低延时和不可靠的特性。具体约束如下:

  • 发送者必须进入房间。
  • 开麦成功后才能调用(纯观众和开播鉴权失败都不能发)。
  • 调用该接口的频率每秒不能超过2次, msgData 的大小不能超过 200 Byte。
  • 不满足以上任一条件msg都会被丢弃。
  • 不保证一定送达房间内所有在线用户,不保证一定按序送达。

通过 onSendAppMsgDataFailedStatus 接口函数,获得发送该msg失败的原因。 通过 onRecvUserAppMsgData 接口函数,获取其他用户发来的自定义广播消息。

参数
参数描述
msgData发送的消息
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enableWebSdkCompatibility

public int enableWebSdkCompatibility(boolean enabled)

开/关WebSDK兼容。

启用后,与Web SDK互通时可确保兼容性,避免在Web端观看异常。

  • 开启跟WebSDK兼容后内部禁止编码B帧,因为WebSDK不能正常解码B帧
  • 适用于直播场景,要求开播前调用,跟进退频道无关, 仅在destroyEngine时重置
  • 连麦默认与 Web SDK 兼容,无需调用该方法。
参数
参数描述
enabledtrue: 兼容
false: 不兼容(默认)
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setLogFilePath

public static int setLogFilePath(String filePath)

设置 SDK 日志存储路径,输出SDK日志。

SDK 日志输出有2种方式:

方式1:调用该API,由App指定输出目录并保证目录可写,SDK 自行输出日志到指定目录文件,且debug下在logcat中输出。

方式2:调用 setLogCallback,SDK 通过 onThunderLogWithLevel 回调日志消息给应用程序,由应用程序自行处理日志消息。

  注意:

  • 请确保App指定的目录有写入权限。
  • 调用 setLogCallback 后,该API失效。
参数
参数描述
filePath日志存储路径
返回

- 0: 方法调用成功 - <0: 方法调用失败。返回码详见 ThunderRet


setLogCallback

public static int setLogCallback(IThunderLogCallback callback)

设置日志回调,输出SDK日志。

SDK 日志输出有2种方式:

方式1:调用该API,SDK通过 onThunderLogWithLevel 回调日志消息给App,由App自行处理日志消息。

方式2:调用 setLogFilePath,由App指定输出目录并保证目录可写,SDK 自行输出日志到指定目录文件,且debug下在logcat中输出。

 注意:

 调用 setLogFilePath后,该API失效。

参数
参数描述
callback回调接口实例,详见 IThunderLogCallback

setLogLevel

public static int setLogLevel(int filter)

设置日志级别。

说明
  • 设置日志输出过滤级别,在setLogFilePath或者setLogCallback之前调用。不调用此接口,使用默认日志等级: THUNDER_LOG_LEVEL_INFO。
参数
参数描述
filter日志等级,使用 ThunderLogLevel 常量类的属性进行设置
返回
  • 0:成功。
  • <0: 失败,详见 错误码

createAudioFilePlayer

public ThunderAudioFilePlayer createAudioFilePlayer()

创建音频文件播放器实例对象。

返回

destroyAudioFilePlayer

public void destroyAudioFilePlayer(ThunderAudioFilePlayer audioFilePlayer)

销毁指定的音频文件播放器实例对象。

参数
参数描述
audioFilePlayerThunderAudioFilePlayer 类型的音频文件播放器实例对象

以下接口属于ThunderAudioFilePlayer类。

ThunderAudioFilePlayer

open

public void open(final String path)

打开需要播放的文件,支持文件格式:mp3、aac、wav。

参数
参数描述
path音频文件路径

close

public void close()

关闭播放文件,可以重新调用 open


play

public void play()

开始播放。


stop

public void stop()

停止播放,调用 play 重新开始播放。


pause

public void pause()

暂停播放,调用 resume 继续播放。


resume

public void resume()

继续播放。


seek

public void seek(final long timeMS)

跳转到指定的播放时间。

参数
参数描述
timeMS需要跳转到的时间点(单位:毫秒),不应该大于 getTotalPlayTimeMS 获取的值

getTotalPlayTimeMS

public long getTotalPlayTimeMS()

获取文件的总播放时长。

返回
  • 总播放时长,单位:毫秒

getCurrentPlayTimeMS

public long getCurrentPlayTimeMS()

获取当前已经播放的时长。

返回

setPlayVolume

public void setPlayVolume(int volume)

设置当前音乐文件在本地(主播端)和远端(观众端)的播放音量。

参数
参数描述
volume音量,取值范围:[0, 100],默认值:100

setPlayerLocalVolume

public int setPlayerLocalVolume(int volume)

调节音乐文件在本地播放的音量大小。方法需要在频道内调用。

参数
参数描述
volume音量,取值范围:[0, 100],默认值:100
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setPlayerPublishVolume

public int setPlayerPublishVolume(int volume)

调节音乐文件在远端播放的音量大小。方法需要在频道内调用。

参数
参数描述
volume音量,取值范围:[0, 100],默认值:100
返回
  • 0:成功。
  • <0: 失败,详见 错误码

getPlayerLocalVolume

public int getPlayerLocalVolume()

获取音乐文件在本地播放的音量大小。

返回
  • [0, 100]: 音量值,范围 [0, 100]
  • <0: 失败,详见 错误码

getPlayerPublishVolume

public int getPlayerPublishVolume()

获取音乐文件在远端播放的音量大小。

返回
  • [0, 100]: 音量值,范围 [0, 100]
  • <0: 失败,详见 错误码

getAudioTrackCount

public int getAudioTrackCount()

获取音频文件的音轨数量。

注意:

  • 需在收到 onAudioFileStateChange 的AUDIO_PLAY_EVENT_OPEN打开文件成功回调事件后,再调用该接口获取音轨。
返回
  • 0:成功。
  • <0: 失败,详见 错误码

selectAudioTrack

public int selectAudioTrack(int audioTrack)

切换到指定音轨。

参数
参数描述
audiotrack要切换到的指定音轨,0 表示文件第一条音轨
返回
  • 0:成功。
  • <0: 失败,详见 错误码

setSemitone

public void setSemitone(int val)

设置音频播放的音调。

参数
参数描述
val音调值,取值范围:[-5, 5],默认值:0(原始音调)
取值越大,音调越高

setLooping

public int setLooping(int cycle)

设置循环播放次数。

参数
参数描述
cycle-1: 表示无限循环
0: 无循环(默认值)
正整数:循环次数
返回
  • 0:成功。
  • <0: 失败,详见 错误码

enablePublish

public void enablePublish(boolean enable)

是否将当前播放的音频文件作为直播伴奏使用。

参数
参数描述
enabletrue: 开启
false:关闭(默认)

setTempo

public void setTempo(float tempo)

设置音频播放的速率。

参数
参数描述
tempo播放速率,0.5f, 0.75f, 1.0f, 1.25f, 1.5f, 2.0f

setPosition

public void setPosition(int azimuth)

设置音频播放的方位。

参数
参数描述
azimuth播放方位:-90-正左方、0-正前方、90-正右方,取值范围:[-90, 90]

setPlayerNotify

public synchronized void setPlayerNotify(IThunderAudioFilePlayerCallback callback)

设置音频文件播放器回调接口,deprecated,建议使用setPlayerEventCallback。

说明: 该接口已废弃。

参数
参数描述
callback音频文件播放器回调接口,详见 IThunderAudioFilePlayerCallback

setPlayerEventCallback

public synchronized void setPlayerEventCallback(IThunderAudioFilePlayerEventCallback callback)

设置音频文件播放器回调接口。

参数
参数描述
callback音频文件播放器回调接口,详见 IThunderAudioFilePlayerEventCallback

enableVolumeIndication

public synchronized void enableVolumeIndication(boolean enable, int interval)

打开音频文件播放音量回调。

参数
参数描述
enabletrue: 开启
false:关闭(默认)
interval回调时间间隔(单位:毫秒)。建议设置为 200ms 以上; 如果 <=0,则重置为 200ms

setMixStandard

public synchronized void setMixStandard(boolean standard)

设置音频文件是否为混画基准流。

参数
参数描述
standardtrue: 基准流
false: 非基准流(默认)

isMixStandard

public synchronized boolean isMixStandard()

查询音频文件是否为混画基准流。

返回
  • true: 是混画基准流
  • false: 非混画基准流

文档是否有解决您的问题?

有帮助 没帮助
提交成功,非常感谢您的反馈!

反馈

TOP