public void onError(int error)
sdk错误信息回调。
参数 | 描述 |
---|---|
error | 错误信息码 |
public void onJoinRoomSuccess(String room, String uid, int elapsed)
进房间成功通知。
调用 joinRoom 后,收到此通知表示与服务器连接正常,可以调用需要"进房间成功"才能调用的接口。
参数 | 描述 |
---|---|
room | 房间号 |
uid | 用户ID |
elapsed | 表示进房间耗时,从调用 joinRoom 到回调此函数的耗时(毫秒) |
public void onLeaveRoom(RoomStats status)
离开房间回调。
调用 leaveRoom 后,正常退出房间就会收到此回调。
参数 | 描述 |
---|---|
RoomStats | 预留参数,暂未实现,详见 RoomStats |
public void onBizAuthResult(boolean bPublish, int result)
业务鉴权结果回调。
由业务进行鉴权的鉴权结果,会转发鉴权请求给业务鉴权服务器,再将鉴权结果通过此接口返回给业务。
参数 | 描述 |
---|---|
bPublish | true:开播鉴权 false:播放鉴权 |
result | 鉴权结果 0:成功 其他值:失败 。由开发者自定义,SDK只透传 |
public void onSdkAuthResult(int result)
SDK鉴权结果通知。
由SDK进行鉴权的鉴权结果。调用 joinRoom 之后,有上下行媒体数据,就会收到该用户的鉴权结果回调通知
参数 | 描述 |
---|---|
result | 鉴权结果, 值含义详见 AuthResult |
public void onUserBanned(boolean status)
用户被封禁通知。
用户的封禁状态变化时会收到该回调通知
参数 | 描述 |
---|---|
status | 封禁状态: ture:封禁 false:解禁 |
public void onRoomStats(ThunderNotification.RoomStats stats)
上下行流量通知 (周期性通知,每2秒通知一次)。用户进房间 joinRoom 后,就会收到该回调。
参数 | 描述 |
---|---|
stats | 房间上下行流量数据,详见 RoomStats |
public void onUserRoleChanged(int oldRole, int newRole)
本地用户在加入房间成功后调用 switchUserRole 切换角色并且收到服务器切换成功返回时会触发此回调。
参数 | 描述 |
---|---|
oldRole | 切换前的用户角色,详见 ThunderUserRole |
newRole | 切换后的用户角色,详见 ThunderUserRole |
public void onUserJoined(String uid, int elapsed)
注意:
v3.1.0之前该接口只支持纯音频,v3.1.0开始该接口支持纯音频和音视频。
远端用户(主播角色)加入当前房间通知。
该回调在如下情况下会被触发:
参数 | 描述 |
---|---|
uid | 新加入房间的远端用户/主播 ID |
elapsed | 从本地用户调用 joinRoom 到触发该回调的延迟(毫秒) |
public void onUserOffline(String uid, int reason)
注意:
v3.1.0之前该接口只支持纯音频,v3.1.0开始该接口支持纯音频和音视频。
用户(主播角色)离开当前房间通知。
该回调在如下情况下会被触发:
参数 | 描述 |
---|---|
uid | 离开房间的用户 ID |
reason | 离线原因,详见 UserOfflineReason |
public void onTokenWillExpire(byte[] token)
token 即将过期通知。
参数 | 描述 |
---|---|
token | 即将过期失效的 Token |
public void onTokenRequested()
token 过期通知。
public void onFirstLocalAudioFrameSent(int elapsed)
成功发送本地音频首帧回调。(作为主播,成功上行第一帧音频后收到此回调)
参数 | 描述 |
---|---|
elapsed | 从本地用户调用 joinRoom 后,直至该回调被触发的耗时(毫秒) |
public void onLocalAudioStats(LocalAudioStats stats)
房间内本地音频流的信息统计回调。
该回调为在房间内本地发送音频流的统计信息,回调间隔周期为 2 秒
参数 | 描述 |
---|---|
stats | 本地音频统计数据,详见 LocalAudioStats |
public void onLocalAudioStatusChanged(int status, int errorReason)
本地音频状态回调。 本地音频系统状态发生改变时,SDK 会回调当前本地音频状态和错误原因。
参数 | 描述 |
---|---|
status | 本地音频状态,详见 LocalAudioStreamStatus |
errorReason | 本地音频状态发生改变的原因,详见 LocalAudioStreamErrorReason |
public void onRemoteAudioStopped(String uid, boolean stop)
远端用户(主播用户)音频流停止/开启通知。
注意:该接口从 V3.3.0 开始已弃用,请改用 onRemoteAudioArrived。
调用 joinRoom 后,房间内现存的音频流以及后续音频流状态发生变化时就会收到该回调。
参数 | 描述 |
---|---|
uid | 远端用户的 uid |
stop | true: 远端用户音频流已停止 false: 远端用户音频流已开启 |
public void onRemoteAudioArrived(String roomId, String uid, boolean arrive)
远端用户音频流开启/停止通知。 调用 joinRoom 后,房间现存的音频流及后续音频流状态发生变化时就会收到该回调。
说明:
- 远程用户调用 stopLocalAudioStream,会收到此通知
- 回调不是周期的,只有状态变化时,才会收到该回调
参数 | 类型 | 描述 |
---|---|---|
roomId | OUT | 房间Id |
uid | OUT | 远端用户Id |
arrive | OUT | false:远程用户音频流停止 true:远程用户音频流开启 |
public void onRemoteAudioStatsOfUid(String uid, RemoteAudioStats stats)
通话中远端音频流信息回调。
该回调描述远端用户(主播)在通话中端到端的音频流状态。针对每个远端用户(主播),每 2 秒触发一次。如果远端同时存在多个用户(主播),该回调每 2 秒会被触发多次
参数 | 描述 |
---|---|
uid | 远端用户(主播)uid |
stats | 远端音频统计数据,详见 RemoteAudioStats |
public void onRemoteAudioPlay(String uid, int elapsed)
已播放远端音频首帧回调。
参数 | 描述 |
---|---|
uid | 远端用户(主播)uid |
elapsed | 从用户调用joinRoom到发生此事件经过的时间(毫秒) |
public void onRemoteAudioStateChangedOfUid(String uid, int state, int reason, int elapsed)
远端用户音频状态改变回调。
参数 | 描述 |
---|---|
uid | 远端用户(主播)uid |
state | 音频流状态,详见 RemoteAudioState |
reason | 远端用户处于当前状态原因,详见 RemoteAudioReason |
elapsed | 从用户调用joinRoom到发生此事件经过的时间(毫秒) |
public void onFirstLocalVideoFrameSent(int elapsed)
成功发送本地视频首帧回调。(作为主播,成功上行第一帧视频后收到此回调)
参数 | 描述 |
---|---|
elapsed | 从本地用户调用 joinRoom 后,直至该回调被触发的耗时(毫秒) |
public void onLocalVideoStats(LocalVideoStats stats)
本地视频流信息统计回调。
该回调表述了房间内本地发送视频流的统计信息,回调时机如下:
参数 | 描述 |
---|---|
stats | 本地视频统计信息,详见 LocalVideoStats |
public void onLocalVideoStatusChanged(int status, int errorReason)
本地视频状态回调。 当本地视频状态发生变化时,会触发 SDK 回调当前本地视频状态和对应的错误原因。
参数 | 描述 |
---|---|
status | 本地视频状态,详见 LocalVideoStreamStatus |
errorReason | 本地视频错误原因,详见 LocalVideoStreamErrorReason |
public void onRemoteVideoStopped(String uid, boolean stop)
远端用户(主播用户)视频流停止/开启通知。
注意:该接口从 V3.3.0开始已废弃,请改用 onRemoteVideoArrived。
调用 joinRoom 后,房间内现存的视频流以及后续视频流状态发生变化时就会收到该回调
参数 | 描述 |
---|---|
uid | 远端用户的 uid |
stop | true: 远端用户视频流已停止 false: 远端用户视频流已开启 |
public void onRemoteVideoArrived(String roomId, String uid, boolean arrive)
远端用户视频流开启/停止通知。 调用 joinRoom 后,房间现存的视频流及后续视频流状态发生变化时就会收到该回调。
说明:
- 远程用户调用 stopLocalVideoStream,会收到此通知
- 回调不是周期的,只有状态变化时,才会收到该回调
参数 | 类型 | 描述 |
---|---|---|
roomId | OUT | 房间Id |
uid | OUT | 远端用户Id |
arrive | OUT | false:远程用户视频流停止 true:远程用户视频流开启 |
public void onRemoteVideoStatsOfUid(String uid, RemoteVideoStats stats)
远端用户视频实时运行状态统计回调
开发者可监听此回调了解远端视频实时帧率、码率、卡顿等情况,此接口以2秒为周期回调,如果房间内有多个人的视频则每2秒回调多次。
参数 | 描述 |
---|---|
uid | 远端用户(主播)uid |
stats | 远端视频实时运行统计数据,详见 RemoteVideoStats |
public void onRemoteVideoPlay(String uid, int width, int height, int elapsed)
远端视频第一帧显示后的回调。
调用 setRemoteVideoCanvas 后,在收到主播视频流并在窗口显示第一帧画面时,会收到该回调。 elapsed可用作计算出视频速度统计,调用setRemoteVideoCanvas太晚会导致elapsed偏大。
参数 | 描述 |
---|---|
uid | 远端用户的 uid |
width | 远端视频的分辨率宽度值 |
height | 远端视频的分辨率高度值 |
elapsed | 从调用 joinRoom 到回调该事件的耗时(ms)。 |
public void onVideoSizeChanged(String uid, int width, int height, int rotation)
远端视频或本地自己开播的视频分辨率发生改变的回调。
调用 joinRoom 后,视频分辨率发生变化时就会收到该回调 第一帧解码后会回调一次。
参数 | 描述 |
---|---|
uid | 发生视频分辨率变化的用户的 uid。uid 为0表示本地用户(自己)开播的视频;非0表示远端视频(其他用户开播的视频流) |
width | 改变后的远端视频的分辨率宽度值 |
height | 改变后的远端视频的分辨率高度值 |
rotation | 预留参数,暂未实现 |
public void onRemoteVideoStateChangedOfUid(String uid, int state, int reason, int elapsed)
订阅的远端视频状态发生改变回调。 本地用户订阅的每一路远端用户视频状态发生改变时,SDK 会触发回调向你报告远端视频流当前状态和状态改变的原因。
参数 | 描述 |
---|---|
uid | 远端用户(主播)uid |
state | 视频流状态,详见 RemoteVideoState |
reason | 状态改变的原因,详见 RemoteVideoReason |
elapsed | 从用户调用joinRoom到发生此事件经过的时间(毫秒) |
public void onNetworkQuality(String uid, int txQuality, int rxQuality)
本地或远端用户的网络上下行质量报告回调。
参数 | 描述 |
---|---|
uid | 每次回调,报告的是该 uid 对应用户的网络质量, 当 uid 为 0 时,表示本地用户的网络质量,否则为远端用户 |
txQuality | 网络上行质量,详见 NetworkQuality |
rxQuality | 网络下行质量,详见 NetworkQuality |
public void onNetworkTypeChanged(int type)
网络连接型变化回调。
在创建并初始化引擎后,当网络连接型发生变化时,会收到该回调。
参数 | 描述 |
---|---|
type | 网络连接型,详见 ThunderNetworkType |
public void onConnectionStatus(int status)
与服务器网络连接状态变化回调。
调用 joinRoom 后,SDK与服务器 (service和avp) 网络连接状态发生变化时会收到该回调。
参数 | 描述 |
---|---|
status | 与服务器连接状态,详见 ThunderConnectionStatus |
public void onConnectionLost(){}
跟服务器网络连接中断通知。
SDK 在调用 joinRoom 后无论是否加入成功,只要持续 10 秒无法跟服务器成功建立连接就会触发此回调。app主动调用 leaveRoom 前sdk会一直自动重连。
public void onPublishStreamToCDNStatus(String url, int errorCode)
cdn推流结果回调。
用户调用 addPublishOriginStreamUrl 或 addPublishTranscodingStreamUrl 推流后,就会收到此回调。 推流状态发生变化的时候会触发该回调。
参数 | 描述 |
---|---|
url | 推流的 URL 地址 |
errorCode | 推流结果状态码,详见 ThunderPublishCDNErrorCode |
public void onPlayVolumeIndication(AudioVolumeInfo[] speakers, int totalVolume)
播放音量回调。
调用 setAudioVolumeIndication 开启后,房间内有人说话就会收到该回调。
参数 | 描述 |
---|---|
speakers | 音频音量信息数组。 每个 speaker 包括: uid:说话者的 uid 。 volume:说话者的音量。 pts: 采集时间戳 详见 AudioVolumeInfo |
totalVolume | (混音后的)总音量 [0-100] |
public void onCaptureVolumeIndication(int totalVolume, int cpt, int micVolume)
采集音量回调。
调用 enableCaptureVolumeIndication 开启后就会收到该回调。
参数 | 描述 |
---|---|
totalVolume | 采集总音量(包含麦克风采集和文件播放)[0-100] |
cpt | 采集时间戳(ms) |
micVolume | 仅麦克风采集的音量值[0-100] |
public void onAudioRecordState(int stateCode, int duration)
参数 | 描述 |
---|---|
stateCode | 录音状态错误码 ThunderAudioRecordStateCode |
duration | 录音文件时长, <=0:无效时长, >0: 有效时长, 单位:ms |
public void onAudioRouteChanged(int routing)
语音路由已变更回调
参数 | 描述 |
---|---|
routing | 当前语音路由的设备,详见 ThunderAudioFilePLayerErrorCode |
public void onHowlingDetectResult(boolean bHowling)
啸叫检测结果通知回调
参数 | 描述 |
---|---|
bHowling | true:检测到啸叫;false:没有检测到啸叫 |
public void onEchoDetectResult(boolean bEcho)
回声检测结果回调。
参数 | 描述 |
---|---|
bEcho | true:检测到回声;false:没有检测到回声 |
public void onAudioCaptureStatus(int status)
音频设备采集状态变化回调。
启动音频采集,当音频设备采集状态发生变化时,会收到该回调。
参数 | 描述 |
---|---|
status | 音频设备采集状态,详见 ThunderAudioDeviceStatus |
public void onLocalSpeakingState(int status)
本地说话状态回调。
启动音频采集并且enableLocalSpeakingDetector(true)后,说话开始和说话结束的时候触发.
参数 | 描述 |
---|---|
status | 音频设备采集状态,详见 ThunderLocalSpeakingState |
public void onVideoCaptureStatus(int status)
摄像头采集状态变化回调。
启动摄像头采集,当摄像头设备采集状态发生变化时,会收到该回调。
参数 | 描述 |
---|---|
status | 摄像头采集状态,详见 ThunderVideoCaptureStatus |
public void onCameraFocusAreaChanged(Rect rect)
摄像头对焦区域已改变回调。
该回调表示相机的对焦区域发生了改变。
参数 | 描述 |
---|---|
rect | 镜头内表示对焦的区域 |
public void onCameraExposureAreaChanged(Rect rect)
摄像头曝光区域已改变回调。
该回调表示相机的曝光区域发生了改变。
参数 | 描述 |
---|---|
rect | 镜头内表示曝光的区域 |
public void onAudioPlaySpectrumData(byte[] data)
音频播放数据回调。
调用 enableAudioPlaySpectrum 开启后就会收到该回调。
参数 | 描述 |
---|---|
data | 音频频谱数据 |
public void onRecvUserAppMsgData(byte[] data, String uid)
接收开发者自定义广播消息回调。
参数 | 描述 |
---|---|
data | 接收到的透传消息 |
uid | 发送该消息的用户 uid |
public void onSendAppMsgDataFailedStatus(int status)
开发者自定义广播消息发送失败回调。
参数 | 描述 |
---|---|
status | 失败状态 1:频率太高 2:发送数据太大 3:未成功开播 |
public void onDeviceStats(DeviceStats stats)
CPU/内存使用信息。 该回调描述CPU/内存使用情况,用户加入房间joinRoom 后,每两秒钟回调一次。
参数 | 描述 |
---|---|
stats | CPU/内存使用信息,详见 DeviceStats |
public void onRemoteVideoTransId(String roomId,
String uid,
ArrayList<ThunderRtcVideoTransParam> videoTransParams)
远端用户视频转码信息回调。
以下情况下会收到该回调:
参数 | 描述 |
---|---|
roomId | 房间ID |
uid | 主播UID |
videoTransParams | 主播开播的转码档位,详见 ThunderRtcVideoTransParam |
public void onSetSubscribeVideoTransIdResult(String uid, int bizTransId, int realTransId)
业务设置订阅档位结果回调。
用户调用 setSubscribeVideoTransid 设置订阅档位时会触发该回调。
参数 | 描述 |
---|---|
uid | 主播UID |
bizTransId | 设置的档位值 |
realTransId | 实际的档位值,SDK会校验档位值并以就近原则进行转换档位 |
public void onSwitchVideoTransIdResult(String uid,
ThunderRtcConstant.ThunderSwitchVideoTransIdResult result)
业务切换转码档位结果回调。
参数 | 描述 |
---|---|
uid | 主播uid |
result | 切换结果,参数详见 ThunderSwitchVideoTransIdResult |
void onSendMediaExtraInfoFailedStatus(int status)
发送媒体次要信息失败状态回调。
参数 | 描述 |
---|---|
status | 失败错误码,详见 ThunderSendMediaExtraInfoFailedStatus |
void onRecvMediaExtraInfo(java.lang.String uid,
java.nio.ByteBuffer data,
int dataLen)
接收媒体次要信息。
参数 | 描述 |
---|---|
uid | 主播的uid |
data | 接收到的媒体次要信息 |
dataLen | 媒体次要信息长度 |
void onRecvMixAudioInfo(java.lang.String uid, ArrayList<MixAudioInfo> infos)
接收到混音流的次要信息。
参数 | 描述 |
---|---|
uid | 混音流的 uid |
infos | 混音流的原流信息,标识了此混音流由哪些流混出来的,详见 MixAudioInfo |
void onRecvMixVideoInfo(java.lang.String uid, ArrayList<MixVideoInfo> infos)
接收到混画流的次要信息。
参数 | 描述 |
---|---|
uid | 混画流的uid |
infos | 混画流的原流信息,标识了此混画流由哪些流混出来的以及流的布局信息,详见 MixVideoInfo |
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 | 当前采集到的音频帧时间戳 |
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 | 当前播放音频帧时间戳 |
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,单位为秒 |
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类接口在V3.3.100已废弃,使用 VideoTextureFrameObserver 替换。
void onInit(int textureTarget, int outputWidth, int outputHeight)
用于开发者使用第三方特效。
包括“更新纹理型”以及“使用OES纹理的shader”。
参数 | 描述 |
---|---|
textureTarget | 纹理型 ( GL_TEXTURE_EXTERNAL_OES / GL_TEXTURE_2D ) |
outputWidth | 纹理宽 |
outputHeight | 纹理高 |
void onDestroy()
销毁特效资源。
void onDraw(final int textureId,
final FloatBuffer cubeBuffer,
final FloatBuffer textureBuffer,
float[] texMatrix)
每一帧渲染处理。
参数 | 描述 |
---|---|
textureId | 纹理 ID |
cubeBuffer | vertex顶点坐标 |
textureBuffer | texture坐标 |
texMatrix | 纹理矩阵 |
void onOutputSizeChanged(final int width, final int height)
纹理大小更新回调。
参数 | 描述 |
---|---|
width | 更新后的纹理宽度 |
height | 更新后的纹理高度 |
void onInit(int textureTarget, int outputWidth, int outputHeight)
用于开发者使用第三方特效。
包括“更新纹理型”以及“使用OES纹理的shader”。
参数 | 描述 |
---|---|
textureTarget | 纹理型 ( GL_TEXTURE_EXTERNAL_OES / GL_TEXTURE_2D ) |
outputWidth | 纹理宽 |
outputHeight | 纹理高 |
void onDestroy()
销毁特效资源。
void onDraw(final ThunderVideoFrame videoFrame)
每一帧渲染处理。
参数 | 描述 |
---|---|
videoFrame | 回调内容, 详见 ThunderVideoFrame |
void onOutputSizeChanged(final int width, final int height)
纹理大小更新回调。
参数 | 描述 |
---|---|
width | 更新后的纹理宽度 |
height | 更新后的纹理高度 |
注意:
该接口已废弃,建议使用ThunderVideoCaptureObserver
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 |
抽象类,回调数据,实现了接口IVideoCaptureObserver
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 |
void onVideoDecodeFrame(String uid, int w, int h, byte[] data, int dateLen, long renderTimeMs)
回调解码后用于渲染的数据(I420)给开发者
参数 | 描述 |
---|---|
uid | 视频帧所属用户的 uid |
w | 视频帧的宽度 |
h | 视频帧的高度 |
data | 视频帧的 I420 数据 |
dateLen | 视频帧的长度 |
renderTimeMs | 当前渲染时间戳 |
boolean onInitialize(ThunderVideoFrameConsumer consumer)
初始化视频源。
在此回调函数中,通过调用 consumer.consumeByteArrayFrame 推送YUV外部视频流)。 2.9.10新增consumeTextureFrame 纹理格式推送外部视频流; 3.4.0新增consumeVideoFrame新接口,同时支持纹理/YUV格式推送外部视频流, 并新增支持设置原流分辨率到编码分辨率的裁剪模式;
参数 | 描述 |
---|---|
consumer | 外部视频推流接口对象,详见 ThunderVideoFrameConsumer |
boolean onStart()
启动视频源。
boolean onStop()
停止视频源。
boolean onDispose()
释放视频源。
void consumeByteArrayFrame(byte[] data, int format, int width, int height, int rotation, long timestamp)
接收 ByteArray 型的视频帧。
调用此函数,将 ByteArray 型的视频帧传输给 SDK , SDK 会将此视频帧推送出去。
参数 | 描述 |
---|---|
data | Byte Array 型的视频数据 |
format | 像素格式,可选值详见 ExternalVideoPixelFormat |
width | 视频帧的宽度 |
height | 视频帧的高度 |
rotation | 视频帧顺时针旋转的角度。如果设置了旋转角度,媒体引擎会对图像进行旋转。 你可以根据需要将角度值设为 0 度、90 度、180 度和 270 度,如果设置为其他数字,系统会自动忽略 |
timestamp | 传入的视频帧的时间戳。开发者必须为每一个视频帧设置一个时间戳 |
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 的纹理矩阵,典型值是传入一个单位矩阵 |
void consumeVideoFrame(ThunderExternalVideoFrame frame)
参数 | 描述 |
---|---|
frame | 外部推流数据的封装 可选值详见 ThunderExternalVideoFrame |
void onThunderLogWithLevel(int level, String tag, String msg)
日志回调接口。
设置此回调后,日志信息将通过此接口回调出来。
参数 | 描述 |
---|---|
level | 日志级别,详见 ThunderLogLevel |
tag | 日志标签 |
msg | 日志内容 |
public void onAudioFileVolume(long volume, long currentMs, long totalMs)
播放音量回调。
参数 | 描述 |
---|---|
volume | 音量值[0-100] |
currentMs | 播放进度值(单位:毫秒) |
totalMs | 文件总长度(单位:毫秒) |
public void onAudioFileStateChange(int event, int errorCode)
播放器状态回调。
参数 | 描述 |
---|---|
event | 播放状态,详见 ThunderAudioFilePlayerEvent |
errorCode | 播放状态错误码,详见 ThunderAudioFilePLayerErrorCode |
注意:
该接口已废弃(from v2.8.0),建议使用onAudioFileStateChange
void onAudioFilePlayError(int errorCode)
音频文件播放错误回调。
参数 | 描述 |
---|---|
errorCode | 音频文件播放错误码 |
错误码含义如下:
错误码 | 含义 |
---|---|
0 | 文件打开成功 |
-1 | 文件格式解析出错 |
-2 | 文件格式解码出错 |
-3 | 文件格式不支持 |
-4 | 文件路径不存在 |
注意:
- 该接口已废弃(from v2.8.0),建议使用onAudioFileVolume
void onAudioFileVolume(long volume, long currentMs, long totalMs)
音频文件播放音量回调。
参数 | 描述 |
---|---|
volume | 音量值[0-100] |
currentMs | 播放进度值(单位:毫秒) |
totalMs | 文件总长度(单位:毫秒) |
注意:
- 该接口已废弃(from v2.8.0),建议使用onAudioFileStateChange
void onAudioFileSeekComplete(int millisecond)
快进到指定时刻操作已完成回调。
参数 | 描述 |
---|---|
millisecond | 实际快进的进度 |
注意:
- 该接口已废弃(from v2.8.0),建议使用onAudioFileStateChange
void onAudioFilePlaying()
开始播放回调。
注意:
- 该接口已废弃(from v2.8.0),建议使用onAudioFileStateChange
void onAudioFilePause()
暂停播放回调。
注意:
- 该接口已废弃(from v2.8.0),建议使用onAudioFileStateChange
void onAudioFileResume()
恢复播放回调。
注意:
- 该接口已废弃(from v2.8.0),建议使用onAudioFileStateChange
void onAudioFileStop()
用户主动停止播放的回调。
注意:
- 该接口已废弃(from v2.8.0),建议使用onAudioFileStateChange
void onAudioFilePlayEnd()
播放结束回调。