AHandler类接口说明

该接口类是用于事件通知的回调基类,应用继承并实现这个接口类的所有虚函数,当相应事件发生时core会回调相应的接口以通知应用。所有以on开头的方法都是回调方法,即由库调用应用,应用不应该主动调用这些方法。应用在实现这些接口类时,可以参考Demo程序中XPHandler.java的实现。

当core收到服务器返回的认证结果时,回调此函数,应用在实现此方法时可以在界面上显示相应信息以提示用户认证的结果。如果auth_result的值是false,还可以弹出认证信息输入界面让用户重试。

  • 原型 abstract public boolean onAuthResponse(boolean auth_result)
  • 参数
    • auth_result 认证结果,true代表认证成功,false代表认证失败
  • 返回
    • 应用实现此方法时总应该返回true。

当客户端与服务器建立连接成功时,此方法被回调。举例,应用在实现此方法时可以在界面上提示用户连接已经建立成功。

  • 原型 abstract public boolean onConnected()
  • 参数
  • 返回
    • 应用实现此方法时总应该返回true。

当客户端与服务器建立连接失败时,此方法被回调,应用在此方法的实现中可以弹出一个对话框询问用户是否需要重新尝试建立连接。

  • 原型 abstract public boolean onConnectFail(int error_no)
  • 参数
    • error_no 错误码
  • 返回
    • 应用实现此方法时总应该返回true。

当core 收到服务器的握手消息时,回调此函数,此事件代表服务器要求客户端提供认证信息,应用在实现此方法时可以在界面上弹出对话框提示用户输入认证信息,随后应用调用tryLogin方法以发起认证请求。可以参考XPHandler.onHandShake的实现逻辑。

  • 原型 abstract public boolean onHandshake()
  • 参数
  • 返回
    • 应用实现此方法时总应该返回true。

在硬编模式下,当视频录制完成后,core会回调此方法,以告诉应用视频文件存放的路径和文件名供应用做后续处理,应用可以将获取的信息缓存起来以供后面断点续传或制作本地播放列表等用处。由于目前软编模式在本地不成生视频文件,因此在软编横式下,此方法将不会被回调。

  • 原型 abstract public boolean onLocalFilename(String file_name)
  • 参数
    • file_name 录制生成的视频文件存放的路径
  • 返回
    • 应用实现此方法时总应该返回true。

解析视频文件结束时回调函数。在上传本地视频文件时,此方法将被回调,core还会回调onParseVideoFileStartonParseVideoFileUpdate 回调序列是一次onParseVideoFileStart, 1-n次onParseVideoFileUpdate,一次onParseVideoFileEnd代表上传完成。应用可参考XPHandler.onParseVideoFileEnd实现的相关方法。

  • 原型 abstract public boolean onParseVideoFileEnd(int audio_pkt_cnt, int video_pkt_cnt,int size)
  • 参数
    • audio_pkt_cnt 视频文件包含的音频包数量
    • video_pkt_cnt 视频文件包含的视频包数量
    • size 视频文件大小(byte)
  • 返回
    • 应用实现此方法时总应该返回true。

当此方法被回调时不代表所有数据已经上传结束,因为网络上传的速度一般慢于视频文件解析处理的速度,因此当core回调此方法时可能有很多网络包还在本地cache队列中。应用在收到此回调后,应该不断地去通过getCacheRemaining检查cache是否为空,直到收到onStreamUploaded回调后才完成了全部数据的上传。

解析视频文件开始时回调函数。在上传本地视频文件时,此方法将被回调,core还会回调onParseVideoFileStartonParseVideoFileUpdate 回调序列是一次onParseVideoFileStart, 1-n次onParseVideoFileUpdate,一次onParseVideoFileEnd代表上传完成。应用可参考XPHandler.onParseVideoFileStart实现的相关方法。

  • 原型 abstract public boolean onParseVideoFileStart(int duration, int file_size)
  • 参数
    • duration 被解析上传文件的时长,以秒为单位
    • file_size 文件的大小,以byte为单位
  • 返回
    • 应用实现此方法时总应该返回true。

解析视频文件过程中回调函数。在上传本地视频文件时,此方法将被回调,core还会回调onParseVideoFileStartonParseVideoFileUpdate 回调序列是一次onParseVideoFileStart, 1-n次onParseVideoFileUpdate,一次onParseVideoFileEnd代表上传完成。通过参数processed_data_sizefile_size, 应用可以简单地计算上传的进度。应用可参考XPHandler.onParseVideoFileUpdate实现的相关方法。

  • 原型 abstract public boolean onParseVideoFileUpdate(int processed_data_size, int file_size)
  • 参数
    • processed_data_size 已经处理完的数据大小,以byte为单位
    • file_size 文件的大小,以byte为单位
  • 返回
    • 应用实现此方法时总应该返回true。

当应用调用stopRecord时,录制并不是马上停止的,只有收到此回调才可以确认录制已经正确停止,才可以调用stopRecord进行下次录制,否则可能产生未知错误。如果是直播,录制停止后不代表所有数据都已经上传到了服务器上。

  • 原型 abstract public boolean onRecordFinished(long data_size, int duration)
  • 参数
    • data_size 录制视频产生的数据大小,以byte为单位
    • duration 录制时长,单位是ms
  • 返回
    • 应用实现此方法时总应该返回true。

core回调此方法时代表客户端收到了服务器发来的音频消息。core会自动将音频消息存成一个可以调用播放器直接播放的音频文件,因此回调函数提供了相应的文件名。

  • 原型 abstract public boolean onRecvAudioMessage(int data_size, String file_name)
  • 参数
    • data_size 音频消息的数据大小,以byte为单位
    • file_name 音频消息存成文件后的文件名,这里是一个全路径的文件名
  • 返回
    • 注意,如果应用在实现此方法时返回的是true, 则core会自动处理音频文件,即按顺序播放收到的语音消息。如果应用想自己处理收到的音频消息,则可以在此返回false, 这样core就不会进一步的处理,应用需要用收到的file_name自己建立一个播放列表,自己处理播放细节。

core回调此方法时代表客户端收到了服务器发来的文本消息。应用在实现此方法时可以把msg显示在界面给用户看,参考XPHandler.onRecvTextMessage的实现。

  • 原型 abstract public boolean onRecvTextMessage(String from, String msg)
  • 参数
    • from 发送消息的用户名
    • msg 文本消息内容
  • 返回
    • 应用实现此方法时总应该返回true。

尝试恢复直播上传失败。发生此回调时,一般在网络断开后,客户端重新连接服务器成功,但由于网络恢复时间较长,超过了设置的续传超时时间而导致直播恢复失败。

  • 原型 abstract public boolean onResumeLiveFail(int code)
  • 参数
    • code 续传直播失败错误码,1表示未找到续传直播
  • 返回
    • 应用实现此方法时总应该返回true。

尝试恢复直播成功,SDK通过此回调通知网络恢复连接,直接也恢复正常。

  • 原型 abstract public void onResumeLiveOk()
  • 参数
  • 返回

当前上传的视频由服务器分配了唯一ID后,core回调此方法以通知应用。

  • 原型 abstract public boolean onStreamIdNotify(String stream_id)
  • 参数
    • stream_id 此视频在服务器上的唯一ID
  • 返回
    • 应用实现此方法时总应该返回true。

视频数据完整上传结束后,此方法被回调。当开始一个数据流(直播、断点续传、离线上传)后,应用在未收到这个回调前都应该hold住,禁止用户发起一个新的数据流。

  • 原型 abstract public boolean onStreamUploaded(String stream_id)
  • 参数
    • stream_id 此视频在服务器上的唯一ID
  • 返回
    • 应用实现此方法时总应该返回true。

应用调用takePicture并且当相应的照片文件在本地生成后,此方法被回调。

  • 原型 abstract public boolean onTakePicture(String file_name)
  • 参数
    • file_name 照片文件名,包含全路径
  • 返回
    • 应用实现此方法时总应该返回true。

发现网络异常,直播中断,正在尝试重新建立连接以恢复当前直播。

  • 原型 abstract public boolean onTryResumeLive()
  • 参数
  • 返回
    • 应用实现此方法时总应该返回true。

注意,此回调只有在直播状态下,网络断开时才会被回调,在非直播状态下网络发生异常,sdk不会自动重连,也不会发出此回调。

应用调用uploadFile上传照片文件后,此方法被回调,当文件上传完毕后onUploadFileEnd被回调。

  • 原型 abstract public boolean onUploadFileStart(String file_name)
  • 参数
    • file_name 照片文件名,包含全路径
  • 返回
    • 应用实现此方法时总应该返回true。

应用调用uploadFile上传照片文件成功后,此方法被回调。与onStreamUploaded类似,在开始一个照片数据流后,在未收到此回调前,应用应该禁止用户发起一个新的数据流。

  • 原型 abstract public boolean onUploadFileEnd(String file_id, String file_name)
  • 参数
    • file_id 上传文件在服务器上相应的唯一ID
    • file_name 照片文件名,包含全路径
  • 返回
    • 应用实现此方法时总应该返回true。