正文
上一章我们介绍了声网的具体初始化、加入房间、离开房间等方法,但我还没介绍具体应该用,那么这一章我们就来看看如何使用AgoraManager
新建接口
/**
* 通话时的接口
*/
public interface OnMediaListener {
void onJoinSuccess(String channel, int uid, int elapsed);
void onRejoinSuccess(String channel, int uid, int elapsed);
void onLeaveChannel(IRtcEngineEventHandler.RtcStats stats);
void onUserJoined(int uid, int elapsed);
void onUserOffline(int uid, int reason);
}
此接口里的方法分别是
onJoinSuccess():加入房间成功的回调
onRejoinSuccess():重新加入房间的回调
onLeaveChannel():离开房间的回调
onUserJoined():有用户加入房间的回调
onUserOffline():有用户离开的回调
其实还可以写更多的方法,比如静音回调、关闭摄像头回调等,但这里我们只是实现简单的音视频通话,有这些方法就足够了
我们在写了这个接口后应该怎么用呢,首先我们要在AgoraManager类内部定义此接口的实例
private OnMediaListener listener;
然后定义一个方法
/**
* 设置通话时的接口回调
*
* @param listener
*/
public void setOnMedialistener(OnMediaListener listener) {
this.listener = listener;
}
并在RTCEngine的IRtcEngineEventHandler中进行调用
/**
* 回调接口
*/
private IRtcEngineEventHandler mHandler = new IRtcEngineEventHandler() {
@Override
public void onJoinChannelSuccess(String channel, int uid, int elapsed) {
if (null != listener) {
listener.onJoinSuccess(channel, uid, elapsed);
}
}
@Override
public void onRejoinChannelSuccess(String channel, int uid, int elapsed) {
if (null != listener) {
listener.onRejoinSuccess(channel, uid, elap