void onRoomStateChanged(QNRoomState state);
void onRemoteUserJoined(String remoteUserId, String userData);
void onRemoteUserLeft(String remoteUserId);
void onLocalPublished(List<QNTrackInfo> trackInfoList);
void onRemotePublished(String remoteUserId, List<QNTrackInfo> trackInfoList);
void onRemoteUnpublished(String remoteUserId, List<QNTrackInfo> trackInfoList);
void onRemoteUserMuted(String remoteUserId, List<QNTrackInfo> trackInfoList);
void onSubscribed(String remoteUserId, List<QNTrackInfo> trackInfoList);
void onKickedOut(String userId);
void onStatisticsUpdated(QNStatisticsReport report);
void onAudioRouteChanged(QNAudioDevice routing);
void onCreateMergeJobSuccess(String mergeJobId);
void onError(int errorCode, String description);
void onMessageReceived(QNCustomMessage message);