ThunderEventHandler

onError

public void onError(int error)

sdk错误信息回调。

参数
参数描述
error错误信息码

onJoinRoomSuccess

public void onJoinRoomSuccess(String room, String uid, int elapsed)

进房间成功通知。

调用 joinRoom 后,收到此通知表示与服务器连接正常,可以调用需要"进房间成功"才能调用的接口。

参数
参数描述
room房间号
uid用户ID
elapsed表示进房间耗时,从调用 joinRoom 到回调此函数的耗时(毫秒)

onLeaveRoom

public void onLeaveRoom(RoomStats status)

离开房间回调。

调用 leaveRoom 后,正常退出房间就会收到此回调。

参数
参数描述
RoomStats预留参数,暂未实现,详见 RoomStats

onBizAuthResult

public void onBizAuthResult(boolean bPublish, int result)

业务鉴权结果回调。

由业务进行鉴权的鉴权结果,会转发鉴权请求给业务鉴权服务器,再将鉴权结果通过此接口返回给业务。

参数
参数描述
bPublishtrue:开播鉴权
false:播放鉴权
result鉴权结果
0:成功
其他值:失败 。由开发者自定义,SDK只透传

onSdkAuthResult

public void onSdkAuthResult(int result)

SDK鉴权结果通知。

由SDK进行鉴权的鉴权结果。调用 joinRoom 之后,有上下行媒体数据,就会收到该用户的鉴权结果回调通知

参数
参数描述
result鉴权结果, 值含义详见 AuthResult

onUserBanned

public void onUserBanned(boolean status)

用户被封禁通知。

用户的封禁状态变化时会收到该回调通知

参数
参数描述
status封禁状态:
ture:封禁
false:解禁

onRoomStats

public void onRoomStats(ThunderNotification.RoomStats stats)

上下行流量通知 (周期性通知,每2秒通知一次)。用户进房间 joinRoom 后,就会收到该回调。

参数
参数描述
stats房间上下行流量数据,详见 RoomStats

onUserRoleChanged

public void onUserRoleChanged(int oldRole, int newRole)

本地用户在加入房间成功后调用 switchUserRole 切换角色并且收到服务器切换成功返回时会触发此回调。

参数
参数描述
oldRole切换前的用户角色,详见 ThunderUserRole
newRole切换后的用户角色,详见 ThunderUserRole

onUserJoined

public void onUserJoined(String uid, int elapsed)

注意:

v3.1.0之前该接口只支持纯音频,v3.1.0开始该接口支持纯音频和音视频。

远端用户(主播角色)加入当前房间通知。

该回调在如下情况下会被触发:

  • 远端用户(主播角色)调用 joinRoom 方法加入房间。
  • 远端用户(主播角色)网络中断后重新加入房间。
  • 远端用户加入频道后调用 switchUserRole 将用户角色从观众改变为主播。
参数
参数描述
uid新加入房间的远端用户/主播 ID
elapsed从本地用户调用 joinRoom 到触发该回调的延迟(毫秒)

onUserOffline

public void onUserOffline(String uid, int reason)

注意:

v3.1.0之前该接口只支持纯音频,v3.1.0开始该接口支持纯音频和音视频。

用户(主播角色)离开当前房间通知。

该回调在如下情况下会被触发:

  • 远端用户(主播角色)离开了房间。
  • 远端用户(主播角色)超时掉线。
  • 远端用户(主播角色)从主播切换为观众。
参数
参数描述
uid离开房间的用户 ID
reason离线原因,详见 UserOfflineReason

onTokenWillExpire

public void onTokenWillExpire(byte[] token)

token 即将过期通知。

  • 在调用 joinRoom 时需要填 Token。由于 Token 具有时效的特性,在房间内通话时如果 Token 即将失效,Thunderbolt SDK 会提前 30 秒出发该回调,以提醒用户更新 Token。
  • 当用户收到该回调时,需要在服务端重新生成新的 Token,然后调用 updateToken 将新生成的 Token 传给 SDK。
参数
参数描述
token即将过期失效的 Token

onTokenRequested

public void onTokenRequested()

token 过期通知。

  • 在调用 joinRoom 时会需要指定 Token。由于 Token 具有时效的特性,在房间内通话时如果 Token 失效了,就会收到此回调通知。
  • 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 updateToken 将新生成的 Token 传给 SDK。

onFirstLocalAudioFrameSent

public void onFirstLocalAudioFrameSent(int elapsed)

成功发送本地音频首帧回调。(作为主播,成功上行第一帧音频后收到此回调)

参数
参数描述
elapsed从本地用户调用 joinRoom 后,直至该回调被触发的耗时(毫秒)

onLocalAudioStats

public void onLocalAudioStats(LocalAudioStats stats)

房间内本地音频流的信息统计回调。

该回调为在房间内本地发送音频流的统计信息,回调间隔周期为 2 秒

参数
参数描述
stats本地音频统计数据,详见 LocalAudioStats

onLocalAudioStatusChanged

public void onLocalAudioStatusChanged(int status, int errorReason)

本地音频状态回调。 本地音频系统状态发生改变时,SDK 会回调当前本地音频状态和错误原因。

参数
参数描述
status本地音频状态,详见 LocalAudioStreamStatus
errorReason本地音频状态发生改变的原因,详见 LocalAudioStreamErrorReason

onRemoteAudioStopped

public void onRemoteAudioStopped(String uid, boolean stop)

远端用户(主播用户)音频流停止/开启通知。

注意:该接口从 V3.3.0 开始已弃用,请改用 onRemoteAudioArrived

调用 joinRoom 后,房间内现存的音频流以及后续音频流状态发生变化时就会收到该回调。

参数
参数描述
uid远端用户的 uid
stoptrue: 远端用户音频流已停止
false: 远端用户音频流已开启

onRemoteAudioArrived

public void onRemoteAudioArrived(String roomId, String uid, boolean arrive)

远端用户音频流开启/停止通知。 调用 joinRoom 后,房间现存的音频流及后续音频流状态发生变化时就会收到该回调。

说明:

  • 远程用户调用 stopLocalAudioStream,会收到此通知
  • 回调不是周期的,只有状态变化时,才会收到该回调
参数
参数类型描述
roomIdOUT房间Id
uidOUT远端用户Id
arriveOUTfalse:远程用户音频流停止
true:远程用户音频流开启

onRemoteAudioStatsOfUid

public void onRemoteAudioStatsOfUid(String uid, RemoteAudioStats stats)

通话中远端音频流信息回调。

该回调描述远端用户(主播)在通话中端到端的音频流状态。针对每个远端用户(主播),每 2 秒触发一次。如果远端同时存在多个用户(主播),该回调每 2 秒会被触发多次

参数
参数描述
uid远端用户(主播)uid
stats远端音频统计数据,详见 RemoteAudioStats

onRemoteAudioPlay

public void onRemoteAudioPlay(String uid, int elapsed)

已播放远端音频首帧回调。

参数
参数描述
uid远端用户(主播)uid
elapsed从用户调用joinRoom到发生此事件经过的时间(毫秒)

onRemoteAudioStateChangedOfUid

public void onRemoteAudioStateChangedOfUid(String uid, int state, int reason, int elapsed)

远端用户音频状态改变回调。

参数
参数描述
uid远端用户(主播)uid
state音频流状态,详见 RemoteAudioState
reason远端用户处于当前状态原因,详见 RemoteAudioReason
elapsed从用户调用joinRoom到发生此事件经过的时间(毫秒)

onFirstLocalVideoFrameSent

public void onFirstLocalVideoFrameSent(int elapsed)

成功发送本地视频首帧回调。(作为主播,成功上行第一帧视频后收到此回调)

参数
参数描述
elapsed从本地用户调用 joinRoom 后,直至该回调被触发的耗时(毫秒)

onLocalVideoStats

public void onLocalVideoStats(LocalVideoStats stats)

本地视频流信息统计回调。

该回调表述了房间内本地发送视频流的统计信息,回调时机如下:

  • 调用开播接口立刻回调
  • 开播中途切换档位立刻回调
  • 2s间隔周期性回调
参数
参数描述
stats本地视频统计信息,详见 LocalVideoStats

onLocalVideoStatusChanged

public void onLocalVideoStatusChanged(int status, int errorReason)

本地视频状态回调。 当本地视频状态发生变化时,会触发 SDK 回调当前本地视频状态和对应的错误原因。

参数
参数描述
status本地视频状态,详见 LocalVideoStreamStatus
errorReason本地视频错误原因,详见 LocalVideoStreamErrorReason

onRemoteVideoStopped

public void onRemoteVideoStopped(String uid, boolean stop)

远端用户(主播用户)视频流停止/开启通知。

注意:该接口从 V3.3.0开始已废弃,请改用 onRemoteVideoArrived

调用 joinRoom 后,房间内现存的视频流以及后续视频流状态发生变化时就会收到该回调

参数
参数描述
uid远端用户的 uid
stoptrue: 远端用户视频流已停止
false: 远端用户视频流已开启

onRemoteVideoArrived

public void onRemoteVideoArrived(String roomId, String uid, boolean arrive)

远端用户视频流开启/停止通知。 调用 joinRoom 后,房间现存的视频流及后续视频流状态发生变化时就会收到该回调。

说明:

  • 远程用户调用 stopLocalVideoStream,会收到此通知
  • 回调不是周期的,只有状态变化时,才会收到该回调
参数
参数类型描述
roomIdOUT房间Id
uidOUT远端用户Id
arriveOUTfalse:远程用户视频流停止
true:远程用户视频流开启

onRemoteVideoStatsOfUid

public void onRemoteVideoStatsOfUid(String uid, RemoteVideoStats stats)

远端用户视频实时运行状态统计回调

开发者可监听此回调了解远端视频实时帧率、码率、卡顿等情况,此接口以2秒为周期回调,如果房间内有多个人的视频则每2秒回调多次。

参数
参数描述
uid远端用户(主播)uid
stats远端视频实时运行统计数据,详见 RemoteVideoStats

onRemoteVideoPlay

public void onRemoteVideoPlay(String uid, int width, int height, int elapsed)

远端视频第一帧显示后的回调。

调用 setRemoteVideoCanvas 后,在收到主播视频流并在窗口显示第一帧画面时,会收到该回调。 elapsed可用作计算出视频速度统计,调用setRemoteVideoCanvas太晚会导致elapsed偏大。

参数
参数描述
uid远端用户的 uid
width远端视频的分辨率宽度值
height远端视频的分辨率高度值
elapsed从调用 joinRoom 到回调该事件的耗时(ms)。

onVideoSizeChanged

public void onVideoSizeChanged(String uid, int width, int height, int rotation)

远端视频或本地自己开播的视频分辨率发生改变的回调。

调用 joinRoom 后,视频分辨率发生变化时就会收到该回调 第一帧解码后会回调一次。

参数
参数描述
uid发生视频分辨率变化的用户的 uid。uid 为0表示本地用户(自己)开播的视频;非0表示远端视频(其他用户开播的视频流)
width改变后的远端视频的分辨率宽度值
height改变后的远端视频的分辨率高度值
rotation预留参数,暂未实现

onRemoteVideoStateChangedOfUid

public void onRemoteVideoStateChangedOfUid(String uid, int state, int reason, int elapsed)

订阅的远端视频状态发生改变回调。 本地用户订阅的每一路远端用户视频状态发生改变时,SDK 会触发回调向你报告远端视频流当前状态和状态改变的原因。

参数
参数描述
uid远端用户(主播)uid
state视频流状态,详见 RemoteVideoState
reason状态改变的原因,详见 RemoteVideoReason
elapsed从用户调用joinRoom到发生此事件经过的时间(毫秒)

onNetworkQuality

public void onNetworkQuality(String uid, int txQuality, int rxQuality)

本地或远端用户的网络上下行质量报告回调。

参数
参数描述
uid每次回调,报告的是该 uid 对应用户的网络质量, 当 uid 为 0 时,表示本地用户的网络质量,否则为远端用户
txQuality网络上行质量,详见 NetworkQuality
rxQuality网络下行质量,详见 NetworkQuality

onNetworkTypeChanged

public void onNetworkTypeChanged(int type)

网络连接型变化回调。

在创建并初始化引擎后,当网络连接型发生变化时,会收到该回调。

参数
参数描述
type网络连接型,详见 ThunderNetworkType

onConnectionStatus

public void onConnectionStatus(int status)

与服务器网络连接状态变化回调。

调用 joinRoom 后,SDK与服务器 (service和avp) 网络连接状态发生变化时会收到该回调。

  • thunder模式下,只看跟avp的连接状态。
  • thunderbolt模式下且没有开播或订阅(不会连接avp)只看service连接状态。
  • thunderbolt模式下且有开播或订阅,同时看service和avp的连接状态。
参数
参数描述
status与服务器连接状态,详见 ThunderConnectionStatus

onConnectionLost

public void onConnectionLost(){}

跟服务器网络连接中断通知。

SDK 在调用 joinRoom 后无论是否加入成功,只要持续 10 秒无法跟服务器成功建立连接就会触发此回调。app主动调用 leaveRoom 前sdk会一直自动重连。


onPublishStreamToCDNStatus

public void onPublishStreamToCDNStatus(String url, int errorCode)

cdn推流结果回调。

用户调用 addPublishOriginStreamUrladdPublishTranscodingStreamUrl 推流后,就会收到此回调。 推流状态发生变化的时候会触发该回调。

参数
参数描述
url推流的 URL 地址
errorCode推流结果状态码,详见 ThunderPublishCDNErrorCode

onPlayVolumeIndication

public void onPlayVolumeIndication(AudioVolumeInfo[] speakers, int totalVolume)

播放音量回调。

调用 setAudioVolumeIndication 开启后,房间内有人说话就会收到该回调。

参数
参数描述
speakers音频音量信息数组。
每个 speaker 包括:
uid:说话者的 uid 。
volume:说话者的音量。
pts: 采集时间戳
详见 AudioVolumeInfo
totalVolume(混音后的)总音量 [0-100]

onCaptureVolumeIndication

public void onCaptureVolumeIndication(int totalVolume, int cpt, int micVolume)

采集音量回调。

调用 enableCaptureVolumeIndication 开启后就会收到该回调。

参数
参数描述
totalVolume采集总音量(包含麦克风采集和文件播放)[0-100]
cpt采集时间戳(ms)
micVolume仅麦克风采集的音量值[0-100]

onAudioRecordState

public void onAudioRecordState(int stateCode, int duration)
参数
参数描述
stateCode录音状态错误码 ThunderAudioRecordStateCode
duration录音文件时长, <=0:无效时长, >0: 有效时长, 单位:ms

onAudioRouteChanged


public void onAudioRouteChanged(int routing)

语音路由已变更回调

  • 该回调通知是在语音路由发生切换时才会回调,非实时回调
参数
参数描述
routing当前语音路由的设备,详见 ThunderAudioFilePLayerErrorCode

onHowlingDetectResult

public void onHowlingDetectResult(boolean bHowling)

啸叫检测结果通知回调

  • enableHowlingDetector(true)并且在打开麦克风的状态下才会收到该回调
  • 回调不是周期的,只有状态变化时,才会收到该回调
  • enableHowlingDetector(true)的状态下,关闭麦克风再打开麦克风会收到一次该回调
  • 麦克风打开的状态状态下,从enableHowlingDetector(false)到enableHowlingDetector(true)会收到一次该回调
参数
参数描述
bHowlingtrue:检测到啸叫;false:没有检测到啸叫

onEchoDetectResult

public void onEchoDetectResult(boolean bEcho)

回声检测结果回调。

  • 该回调通知是在检测到回声时才会回调,非实时回调
参数
参数描述
bEchotrue:检测到回声;false:没有检测到回声

onAudioCaptureStatus

public void onAudioCaptureStatus(int status)

音频设备采集状态变化回调。

启动音频采集,当音频设备采集状态发生变化时,会收到该回调。

参数
参数描述
status音频设备采集状态,详见 ThunderAudioDeviceStatus

onLocalSpeakingState

public void onLocalSpeakingState(int status)

本地说话状态回调。

启动音频采集并且enableLocalSpeakingDetector(true)后,说话开始和说话结束的时候触发.

参数
参数描述
status音频设备采集状态,详见 ThunderLocalSpeakingState

onVideoCaptureStatus

public void onVideoCaptureStatus(int status)

摄像头采集状态变化回调。

启动摄像头采集,当摄像头设备采集状态发生变化时,会收到该回调。

参数
参数描述
status摄像头采集状态,详见 ThunderVideoCaptureStatus

onCameraFocusAreaChanged

public void onCameraFocusAreaChanged(Rect rect)

摄像头对焦区域已改变回调。

该回调表示相机的对焦区域发生了改变。

参数
参数描述
rect镜头内表示对焦的区域

onCameraExposureAreaChanged

public void onCameraExposureAreaChanged(Rect rect)

摄像头曝光区域已改变回调。

该回调表示相机的曝光区域发生了改变。

参数
参数描述
rect镜头内表示曝光的区域

onAudioPlaySpectrumData

public void onAudioPlaySpectrumData(byte[] data)

音频播放数据回调。

调用 enableAudioPlaySpectrum 开启后就会收到该回调。

参数
参数描述
data音频频谱数据

onRecvUserAppMsgData

public void onRecvUserAppMsgData(byte[] data, String uid)

接收开发者自定义广播消息回调。

参数
参数描述
data接收到的透传消息
uid发送该消息的用户 uid

onSendAppMsgDataFailedStatus

public void onSendAppMsgDataFailedStatus(int status)

开发者自定义广播消息发送失败回调。

参数
参数描述
status失败状态
1:频率太高
2:发送数据太大
3:未成功开播

onDeviceStats

public void onDeviceStats(DeviceStats stats)

CPU/内存使用信息。 该回调描述CPU/内存使用情况,用户加入房间joinRoom 后,每两秒钟回调一次。

参数
参数描述
statsCPU/内存使用信息,详见 DeviceStats

onRemoteVideoTransId

public void onRemoteVideoTransId(String roomId,
                                 String uid,
                                 ArrayList<ThunderRtcVideoTransParam> videoTransParams)

远端用户视频转码信息回调。

以下情况下会收到该回调:

  • 房间内流变化时。
  • 当远端用户调用 setVideoEncoderParameters 增加、删除、修改视频转码参数时。
  • 房间内只有源画流时。
参数
参数描述
roomId房间ID
uid主播UID
videoTransParams主播开播的转码档位,详见 ThunderRtcVideoTransParam

onSetSubscribeVideoTransIdResult

public void onSetSubscribeVideoTransIdResult(String uid, int bizTransId, int realTransId)

业务设置订阅档位结果回调。

用户调用 setSubscribeVideoTransid 设置订阅档位时会触发该回调。

参数
参数描述
uid主播UID
bizTransId设置的档位值
realTransId实际的档位值,SDK会校验档位值并以就近原则进行转换档位

onSwitchVideoTransIdResult

public void onSwitchVideoTransIdResult(String uid,
                                       ThunderRtcConstant.ThunderSwitchVideoTransIdResult result)

业务切换转码档位结果回调。

  • 成功:目标流收到数据,且DTS对齐的情况下,服务器下成功通知,SDK回调成功。
  • 超时:目标流超过5秒没有收到数据,或目标流收到数据超过5秒没有完成切换,服务器下超时通知,SDK回调超时。
参数
参数描述
uid主播uid
result切换结果,参数详见 ThunderSwitchVideoTransIdResult

IThunderMediaExtraInfoCallback

onSendMediaExtraInfoFailedStatus

void onSendMediaExtraInfoFailedStatus(int status)

发送媒体次要信息失败状态回调。

参数
参数描述
status失败错误码,详见 ThunderSendMediaExtraInfoFailedStatus

onRecvMediaExtraInfo

void onRecvMediaExtraInfo(java.lang.String uid,
                          java.nio.ByteBuffer data,
                          int dataLen)

接收媒体次要信息。

参数
参数描述
uid主播的uid
data接收到的媒体次要信息
dataLen媒体次要信息长度

onRecvMixAudioInfo

void onRecvMixAudioInfo(java.lang.String uid, ArrayList<MixAudioInfo> infos)

接收到混音流的次要信息。

参数
参数描述
uid混音流的 uid
infos混音流的原流信息,标识了此混音流由哪些流混出来的,详见 MixAudioInfo

onRecvMixVideoInfo

void onRecvMixVideoInfo(java.lang.String uid, ArrayList<MixVideoInfo> infos)

接收到混画流的次要信息。

参数
参数描述
uid混画流的uid
infos混画流的原流信息,标识了此混画流由哪些流混出来的以及流的布局信息,详见 MixVideoInfo

IAudioFrameObserver

onRecordAudioFrame

boolean onRecordAudioFrame(ByteBuffer samples,
                           int numOfSamples,
                           int bytesPerSample,
                           int channels,
                           int samplesPerSec,
                           long timestamp)

采集原始数据回调。

参数
参数描述
samples该帧的采样数据
numOfSamples采样数
bytesPerSample每个样本的字节数:对于 PCM 来说,一般使用 16 bit,即两个字节
channels频道数量(如果是立体声,数据是交叉的);1:单声道,2:双声道
samplesPerSec采样率,SamplesPerCall = (int)(SampleRate × sampleInterval),其中:sample ≥ 0.01,单位为秒
timestamp当前采集到的音频帧时间戳
返回
  • true 。

onPlaybackAudioFrame

boolean onPlaybackAudioFrame(ByteBuffer samples,
                             int numOfSamples,
                             int bytesPerSample,
                             int channels,
                             int samplesPerSec,
                             long timestamp)

播放原始数据回调。

参数
参数描述
samples该帧的采样数据
numOfSamples采样数
bytesPerSample每个样本的字节数:对于 PCM 来说,一般使用 16 bit,即两个字节
channels频道数量(如果是立体声,数据是交叉的);1:单声道,2:双声道
samplesPerSec采样率,SamplesPerCall = (int)(SampleRate × sampleInterval),其中:sample ≥ 0.01,单位为秒
timestamp当前播放音频帧时间戳
返回
  • true 。

onPlaybackAudioFrameBeforeMixing

boolean onPlaybackAudioFrameBeforeMixing(String uid,
                                         ByteBuffer samples,
                                         int numOfSamples,
                                         int bytesPerSample,
                                         int channels,
                                         int samplesPerSec)

音频远端用户解码后原始数据回调。

参数
参数描述
uid远端用户 uid
samples该帧的采样数据
numOfSamples采样数
bytesPerSample每个样本的字节数:对于 PCM 来说,一般使用 16 bit,即两个字节
channels频道数量(如果是立体声,数据是交叉的);1:单声道,2:双声道
samplesPerSec采样率,SamplesPerCall = (int)(SampleRate × sampleInterval),其中:sample ≥ 0.01,单位为秒
返回
  • true 。

AudioFrameObserver

onMixedAudioFrame

public boolean onMixedAudioFrame(ByteBuffer samples, int numOfSamples, int bytesPerSample, int channels, int samplesPerSec, long timeStamp);

录制和播放语音混音后的数据回调。

参数
参数描述
samples该帧的采样数据
numOfSamples采样点数
bytesPerSample每个样本的字节数:对于 PCM 来说,一般使用 16 bit,即两个字节
channels声道数量(如果是立体声,数据是交叉的):1-单声道,2-双声道
samplesPerSec采样率,SamplesPerCall = (int)(SampleRate × sampleInterval),其中:sample ≥ 0.01,单位为秒
timeStamp时间戳

IGPUProcess

注意:

IGPUProcess类接口在V3.3.100已废弃,使用 VideoTextureFrameObserver 替换。

onInit

void onInit(int textureTarget, int outputWidth, int outputHeight)

用于开发者使用第三方特效。

包括“更新纹理型”以及“使用OES纹理的shader”。

参数
参数描述
textureTarget纹理型 ( GL_TEXTURE_EXTERNAL_OES / GL_TEXTURE_2D )
outputWidth纹理宽
outputHeight纹理高

onDestroy

void onDestroy()

销毁特效资源。


onDraw

void onDraw(final int textureId,
            final FloatBuffer cubeBuffer,
            final FloatBuffer textureBuffer,
            float[] texMatrix)

每一帧渲染处理。

参数
参数描述
textureId纹理 ID
cubeBuffervertex顶点坐标
textureBuffertexture坐标
texMatrix纹理矩阵

onOutputSizeChanged

void onOutputSizeChanged(final int width, final int height)

纹理大小更新回调。

参数
参数描述
width更新后的纹理宽度
height更新后的纹理高度

VideoTextureFrameObserver

onInit

void onInit(int textureTarget, int outputWidth, int outputHeight)

用于开发者使用第三方特效。

包括“更新纹理型”以及“使用OES纹理的shader”。

参数
参数描述
textureTarget纹理型 ( GL_TEXTURE_EXTERNAL_OES / GL_TEXTURE_2D )
outputWidth纹理宽
outputHeight纹理高

onDestroy

void onDestroy()

销毁特效资源。


onDraw

void onDraw(final ThunderVideoFrame videoFrame)

每一帧渲染处理。

参数
参数描述
videoFrame回调内容, 详见 ThunderVideoFrame

onOutputSizeChanged

void onOutputSizeChanged(final int width, final int height)

纹理大小更新回调。

参数
参数描述
width更新后的纹理宽度
height更新后的纹理高度

IVideoCaptureObserver

注意:

该接口已废弃,建议使用ThunderVideoCaptureObserver

onCaptureVideoFrame

void onCaptureVideoFrame(int width, int height, byte[] data, int length, int imageFormat)

回调camera采集的原始yuv(NV21)给开发者。与IVideoCaptureFrameObserver)同时只能设置一个。

参数
参数描述
width视频帧的宽度
height视频帧的高度
data视频帧的 NV21 数据
length视频帧的长度
imageFormat视频图片格式,可选值详见 android.graphics.ImageFormat

ThunderVideoCaptureObserver

抽象类,回调数据,实现了接口IVideoCaptureObserver

onCaptureVideoFrame

void onCaptureVideoFrame(final ThunderVideoFrame videoFrame)

回调camera采集的原始yuv(NV21)给开发者,带有帧序号,可通过序号找到纹理回调的对应数据

参数
参数描述
videoFrame回调视频数据内容, 详见 ThunderVideoFrame
void onCaptureVideoFrame(int width, int height, byte[] data, int length, int imageFormat)

回调camera采集的原始yuv(NV21)给开发者。

参数
参数描述
width视频帧的宽度
height视频帧的高度
data视频帧的 NV21 数据
length视频帧的长度
imageFormat视频图片格式,可选值详见 android.graphics.ImageFormat

IVideoDecodeObserver

onVideoDecodeFrame

void onVideoDecodeFrame(String uid, int w, int h, byte[] data, int dateLen, long renderTimeMs)

回调解码后用于渲染的数据(I420)给开发者

参数
参数描述
uid视频帧所属用户的 uid
w视频帧的宽度
h视频帧的高度
data视频帧的 I420 数据
dateLen视频帧的长度
renderTimeMs当前渲染时间戳

ThunderCustomVideoSource

onInitialize

boolean onInitialize(ThunderVideoFrameConsumer consumer)

初始化视频源。

在此回调函数中,通过调用 consumer.consumeByteArrayFrame 推送YUV外部视频流)。 2.9.10新增consumeTextureFrame 纹理格式推送外部视频流; 3.4.0新增consumeVideoFrame新接口,同时支持纹理/YUV格式推送外部视频流, 并新增支持设置原流分辨率到编码分辨率的裁剪模式;

参数
参数描述
consumer外部视频推流接口对象,详见 ThunderVideoFrameConsumer
返回
  • true 。

onStart

boolean onStart()

启动视频源。

返回
  • true 。

onStop

boolean onStop()

停止视频源。

返回
  • true 。

onDispose

boolean onDispose()

释放视频源。

返回
  • true 。

ThunderVideoFrameConsumer

consumeByteArrayFrame

void consumeByteArrayFrame(byte[] data, int format, int width, int height, int rotation, long timestamp)

接收 ByteArray 型的视频帧。

调用此函数,将 ByteArray 型的视频帧传输给 SDK , SDK 会将此视频帧推送出去。

参数
参数描述
dataByte Array 型的视频数据
format像素格式,可选值详见 ExternalVideoPixelFormat
width视频帧的宽度
height视频帧的高度
rotation视频帧顺时针旋转的角度。如果设置了旋转角度,媒体引擎会对图像进行旋转。
你可以根据需要将角度值设为 0 度、90 度、180 度和 270 度,如果设置为其他数字,系统会自动忽略
timestamp传入的视频帧的时间戳。开发者必须为每一个视频帧设置一个时间戳

consumeTextureFrame

void consumeTextureFrame(int textureID, int textureFormat, int width, int height, int rotation, long timeStamp,float[] transform)
参数
参数描述
textureID视频帧所使用的 Texture ID
textureFormat传入 texture 传入的格式,可选值详见GLES20.GL_TEXTURE_2D GLES11Ext.GL_TEXTURE_EXTERNAL_OES
width视频帧的宽度
height视频帧的高度
rotation视频帧顺时针旋转的角度。如果设置了旋转角度,媒体引擎会对图像进行旋转。
你可以根据需要将角度值设为 0 度、90 度、180 度和 270 度,如果设置为其他数字,系统会自动忽略
timestamp传入的视频帧的时间戳。开发者必须为每一个视频帧设置一个时间戳
transform传入一个 4x4 的纹理矩阵,典型值是传入一个单位矩阵

consumeVideoFrame

void consumeVideoFrame(ThunderExternalVideoFrame frame)
参数
参数描述
frame外部推流数据的封装 可选值详见 ThunderExternalVideoFrame

onThunderLogWithLevel

void onThunderLogWithLevel(int level, String tag, String msg)

日志回调接口。

设置此回调后,日志信息将通过此接口回调出来。

参数
参数描述
level日志级别,详见 ThunderLogLevel
tag日志标签
msg日志内容

IThunderAudioFilePlayerEventCallback

onAudioFileVolume

public void onAudioFileVolume(long volume, long currentMs, long totalMs)

播放音量回调。

参数
参数描述
volume音量值[0-100]
currentMs播放进度值(单位:毫秒)
totalMs文件总长度(单位:毫秒)

onAudioFileStateChange

public void onAudioFileStateChange(int event, int errorCode)

播放器状态回调。

参数
参数描述
event播放状态,详见 ThunderAudioFilePlayerEvent
errorCode播放状态错误码,详见 ThunderAudioFilePLayerErrorCode

ThunderAudioFilePlayer.IThunderAudioFilePlayerCallback

onAudioFilePlayError

注意:

该接口已废弃(from v2.8.0),建议使用onAudioFileStateChange

void onAudioFilePlayError(int errorCode)

音频文件播放错误回调。

参数
参数描述
errorCode音频文件播放错误码

错误码含义如下:

错误码含义
0文件打开成功
-1文件格式解析出错
-2文件格式解码出错
-3文件格式不支持
-4文件路径不存在

onAudioFileVolume

注意:

  • 该接口已废弃(from v2.8.0),建议使用onAudioFileVolume
void onAudioFileVolume(long volume, long currentMs, long totalMs)

音频文件播放音量回调。

参数
参数描述
volume音量值[0-100]
currentMs播放进度值(单位:毫秒)
totalMs文件总长度(单位:毫秒)

onAudioFileSeekComplete

注意:

void onAudioFileSeekComplete(int millisecond)

快进到指定时刻操作已完成回调。

参数
参数描述
millisecond实际快进的进度

onAudioFilePlaying

注意:

void onAudioFilePlaying()

开始播放回调。


onAudioFilePause

注意:

void onAudioFilePause()

暂停播放回调。


onAudioFileResume

注意:

void onAudioFileResume()

恢复播放回调。


onAudioFileStop

注意:

void onAudioFileStop()

用户主动停止播放的回调。


onAudioFilePlayEnd

注意:

void onAudioFilePlayEnd()

播放结束回调。

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

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

反馈

TOP