

2016/8/12
VodSDK / Player-VodSdkForAndroid3.3.2-2016.08.15.rar
1、基于hls的点播播放过程中，选择文档格式为png时候，底层因路径而写文件失败，导致文档不显示。
2、点播的数据统计中用户id是gensee的用户id，setUserId符合要求(>1000000000)时，使用第三方用户id（需求）

2016/8/16
RtSDK / Rt-VodSdkForAndroid3.3.2-2016.08.17.rar
1、文档首次翻页gotoPage  后续引入的bug

2016/8/22
PlayerSDK / Player-VodSdkForAndroid3.3.2-2016.08.22.rar
1、底层处理超出UTF-8的emoji表情，昵称里面的变成* ,聊天问答内容里面变成[emoji],

2016/8/26
RtSDK / Rt-VodSdkForAndroid3.3.2-2016.08.26.rar
1、SDK支持手机反向辨率（例如720*1280）

2016/8/30
RtSDK / Rt-VodSdkForAndroid3.3.2-2016.08.30.rar
1、添加RtSdk：audioMuteMic(boolean mute, OnTaskRet taskRet)

2016/8/31
PlayerSDK/Player-VodSdkForAndroid3.3.2-2016.08.31.rar
1、OnPlayListener 增加onScreenStatus(boolean isAs) //桌面共享开启状态通知
1、OnPlayListener 增加onModuleFocus(int mode)//客户端控制web布局响应

2016/9/10
PlayerSDK/Player-VodSdkForAndroid3.3.2-2016.09.10.zip
1、支持小班课视频关闭无消息onVideoEnd
2、聊天表情支持输入流配置

3、点播支持视频实际比例和期望比例不一致的情况

2016/11/15
vod sdk
1、点播秒进，缩短了加载时间，play函数增加了 bool isAudioOnly true代表只播放声音/false 播放音视频
2、点播CDNLIST 优化（内部变化）
3、点播组织者并发（内部变化）
4、增加了随时发送日志接口 GenseeLog.reportDiagonse(Context context, String desc,ServiceType serviceType)
5、处理了下载进度99-100时间很长的现象
6、播放onInit result增加了一个响应码（已下载点播问文件不完整）
7、修改了部分点播播放结束时，时间比时长少一秒的问题
8、InitParam setNickName为空不允许加入，（域名、编号或id、servicetype、nickName）有一个为空都会报参数不全ERR_PARAM

playersdk直播
1、OnPlayerListener 增加了onIdcList(List<PingEntity> idcs)返回线路列表
2、Player增加了线路切换接口setIdcId(String idcId, OnTaskRet taskRet)
3、Player增加了获取当前线路的idcId 接口String getCurIdc()
4、增加了随时发送日志接口GenseeLog.reportDiagonse(Context context, String desc,ServiceType serviceType)
5、InitParam setNickName为空不允许加入，（域名、编号或id、servicetype、nickName）有一个为空都会报参数不全ERR_PARAM

RtSdk 直播
1、增加了美颜的采集view（GSLocalVideoView） 需添加gensee_video.jar和 libandroid_videocore.so
2、GSLocalVideoView增加了美颜效果的开关switchBeauty(boolean isOpen)
3、增加了随时发送日志接口增加了无需加入直播就能上传日志的接口GenseeLog.reportDiagonse(Context context, String desc,ServiceType serviceType)
4、处理了退出时引起的crash
5、InitParam setNickName为空不允许加入，（域名、编号或id、servicetype、nickName）有一个为空都会报参数不全ERR_PARAM
6、资源文件libresource添加了string资源，同时更新下资源（libresource）。

2016/12/19
RtSDK
1、视频预览分辨率设置无效修改

PlayerSDK
1、取消直播加入失败的情况下自动release（加入失败情况下某些情况下没有响应onJoin，实际上是响应了的）



2016/12/19
RtSDK
1、视频预览分辨率设置无效修改

PlayerSDK
1、取消直播加入失败的情况下自动release

2017/01/05
RtSDK
1、再次修改onNetworkReport（网络强度）的响应灵敏度
VodSDK 
1、修正离线播放onInit响应后，seek、pause调用的正确性

2017/3/8 
VodSDK
1、点播更新秒进引起的seek（onInit）无效，seek（时长计算不正确）无效，
拖动时候文档顺序（应该直接从seek之后开始显示）显示的问题

RtSDK
1、直播过程中切换网络（特殊网络-内外网）重连不上的问题

PlayerSDK
1、增加了onCameraNotify(int notify)函数，空实现即可

2017/5/4
PlayerSDK
1、聊天消息增加消息id（uuid）
2、聊天消息接收和发送统一为ChatMsg
   (1)接收处理：
    ChatMsg msg；
	    String id = msg.getId();//消息id
	    long userId = msg.getSenderId();      //发送者id
		String senderName = msg.getSender();  // 发送者昵称
		int senderRole = msg.getSenderRole(); //发送者角色
		String text = msg.getContent();       //纯文本
		String rich = msg.getRichText();      //富文本
		int onChatID = msg.getChatId();//发送者（msg.getSenderId()）接收消息的chatId
	经上述代码处理后和之前兼容
	(2)发送处理:
	    String msgId = UUID.randomUUID().toString();//消息id
		final ChatMsg msg = new ChatMsg(content,richText,ChatMsg.CHAT_MSG_TYPE_PUBLIC,msgId);//纯文本、富文本消息类型，消息id（uuid）
		msg.setSender(senderName); //发送者昵称
		msg.setSenderId(senderId); //发送者id
		msg.setSenderRole(role);   //发送者角色
		msg.setChatId(chatId);//私聊的话填写接收人的chatId，公聊不用
3、OnChatListener增加聊天审核接口onChatcensor(String type, String id) 
   type:
   OnChatListener.CENSOR_TYPE_MSG  //msg类型 删除对应id(msgId)的聊天消息
   OnChatListener.CENSOR_TYPE_USER //user类型，删除id(userId)的所有聊天记录
   
   
4、OnChatListener.onChatWithPublic参数变更为ChatMsg对象,onChatWithPublic(ChatMsg msg),处理照2.（1）
5、OnChatListener.onChatWithPerson参数变更为ChatMsg对象,onChatWithPerson(ChatMsg msg),处理照2.（1）
6、Player.chatToPublic/chatToPersion聊天发送接口参数变更为ChatMsg对象和OnTaskRet对象，(ChatMsg msg, OnTaskRet taskRet) 处理照2.（2）

7、聊天表情library需要依赖gensee_common.jar
8、OnPlayListener增加打赏功能接口：
    void onRewordEnable(boolean isAliPay,boolean isWx);//打赏的支持能力，目前只支持支付宝
	void onRedBagTip(RewardResult result);//打赏结果通知
	void onGotoPay(PayInfo info);//打赏订单响应，此后需要app调用支付宝进行支付
9、OnPlayListener增加第三方投票 onThirdVote(String url);


RtSDK
1、自己发送的私聊和公聊sdk不再回调，app在发送的时候自行处理显示，可参如下
接收公聊和私聊：IChatCallback 增加回调函数onChatMessage(ChatMsg msg)；公聊、私聊消息的回调，取代原有的onChatWithPublic、onChatWithPersion
取代修改：

        String id = msg.getId();//消息id
		String senderName = msg.getSender();//发送者昵称
		String text = msg.getContent();//聊天纯文本
		String richText = msg.getRichText();//聊天富文本
		long senderId = msg.getSenderId();//发送者id
		int role = msg.getSenderRole(); //发送者角色
		
		switch (msg.getChatMsgType()) {//消息类型  公共聊天/私聊
		case ChatMsg.CHAT_MSG_TYPE_PUBLIC:  //公共聊天
		    //调用原有代码的onChatWithPublic  去掉“@verride” 再加上一个role，没有用到role忽略role
			onChatWithPublic(senderId, senderName, text, richText, id);
			break;
		case ChatMsg.CHAT_MSG_TYPE_PRIVATE:
		    //调用原有代码的onChatWithPersion  去掉“@verride” 再加上一个role，没有用到role忽略role
			onChatWithPersion(senderId, text, richText,id);
			break;
		default:
			break;
		}

2、IChatCallback 去掉onChatToPersion，发送私聊的时候自行调用原有代码onChatToPersion和之前一致
3、发送产生变化，由于增加了消息id的参数，因此发送的参数修改为ChatMsg对象
   (1)发送公聊 chatWithPublic(text,rich,new OnTaskRet ret)变为chatWithPublic(ChatMsg msg ,new OnTaskRet ret)
   
    String msgId = UUID.randomUUID().toString();//消息id,即加上uuid即可
	ChatMsg msg = new ChatMsg(text,rich,ChatMsg.CHAT_MSG_TYPE_PUBLIC,msgId);//公聊消息msgId，text，rich都不为空才有效
    mRtSdk.chatWithPublic(msg,new OnTaskRet() {
				
				@Override
				public void onTaskRet(boolean ret, int arg1, String arg2) {
					//UserInfo self  onRoomJoin回调的UserInfo
					if(ret && self != null){
						onChatWithPublic(self.getId(),self.getName(), text, rich,msgId);//自己发送的公聊消息添加到列表，如果有其他处理方式，忽略。
					}
				}
			});
	(2)发送私聊 chatWithPersion(String text, String rich, long userId,OnTaskRet ret)变为chatWithPersion(ChatMsg msg,OnTaskRet ret)
	
	String msgId = UUID.randomUUID().toString();//消息id,即加上uuid即可
	ChatMsg msg = new ChatMsg(text,rich,ChatMsg.CHAT_MSG_TYPE_PRIVATE,msgId);
    msg.setReceiverId(userId);//接收人的id
	//私聊消息msgId，text，rich都不为空且接收人id正确才有效

	mRtSdk.chatWithPersion(msg,new OnTaskRet() {
				
				@Override
				public void onTaskRet(boolean ret, int arg1, String arg2) {
					if(ret){
						onChatToPersion(userId, text, rich,msgId);//自己发送的私聊消息添加到列表，如果有其他处理方式，忽略。
					}
				}
			});
			
4、IChatCallback增加了聊天审核onChatCensor(long userId, String msgId);
  聊天审核使用，如果userId不等于0，删除userId的所有聊天消息，如果msgid不为空，删除msgId这条消息，一次调用只有一个参数有效

5、动态库文件增加了libucrtp.so(每一种架构都分别增加armeabi、armeabi-v7a、arm64-v8a、x86)
6、IRoomCallback增加onSettingSet(String key,byte[] value)//空实现即可

  
FastSDK
1、发布（直播）增加横屏模式  GSFastConfig.setPublishScreenMode(int publishScreenMode)
   参数取值定义在GSFastConfig中（例如横屏发布GSFastConfig.setPublishScreenMode(GSFastConfig.PUB_SCREEN_MODE_PORTRAIT)）
   /**
	 * 竖屏发布
	 */
	public static final int PUB_SCREEN_MODE_PORTRAIT = 0;
	/**
	 * 横屏发布
	 */
	public static final int PUB_SCREEN_MODE_LANDSCAPE = 1;
	
2、发布（直播）增加软、硬编码设置GSFastConfig.setHardEncode(boolean hardEncode);true 硬编码/ false 软编码

3、发布（直播）增加标清、高清设置GSFastConfig.setPubQuality(int pubQuality)
   参数取值定义在GSFastConfig中（例如GSFastConfig.setPubQuality(GSFastConfig.PUB_QUALITY_SD)）
   /**
	 * 高清
	 */
	public static final int PUB_QUALITY_HD = 0;
	
	/**
	 * 标清
	 */
	public static final int PUB_QUALITY_SD = 1;
	
4、增加打赏固定金额的配置setFixedMoneyArray(int[] fixedMoneyArray)
   其中单位为分，最多设置6个值 new int[]{10,20,30,40,50,60} 分别表示1-6角

   
   
VodSDK 点播
1、OnVodPlayListener增加聊天审核接口onChatCensor(String type, String id) 
   type:
   OnVodPlayListener.CHATCENSOR_MSG  //msg类型 删除对应id(msgId)的聊天消息
   OnVodPlayListener.CHATCENSOR_USER //user类型，删除id(userId)的所有聊天记录

2017/7/5
Player SDK 直播
1、统一userinfo，sdk更新后修改import com.gensee.entity.UserInfo  为com.gensee.routine.UserInfo即可
   
2017.07.15
doc 修改，适用于所有sdk
1、OnDocViewEventListener 的包名由原来的com.gensee.pdu.GSDocView.OnDocViewEventListener变为com.gensee.doc.OnDocViewEventListener
2、OnDocViewEventListener 回调函数中的参数GSDocView变为IGSDociew

2017.08.03
RtSDK 直播
1、修改初始化参数的userData字段，编码。外部调用（传递和取userInfo.getUserData() ）不变

Player SDK
1、修改初始化参数的userData字段，编码。外部调用（传递和取userInfo.getUserData() ）不变


2017.8.5-17
common 
1、视频渲染问题   
2、文档 swf 渲染保护
3、文档标注空指针、tostring问题
4、聊天、问答添加消息遇listener空指针问题
5、抽象adapter 下标保护

Player SDK OnPlayListener 增加了onVideoDataNotify()回调，内部接口之间使用，app空实现。

2017.9.25
Vod SDK
1、修改某些点播seek之后会反复跳跃问题
2、修改某些点播播放出错问题


2017.12.1
common
1、部分文档显示有网格问题处理

2018.1.30 
所有sdk
1、修改文档标注小于3像素的自由笔以3像素绘制

2018.4.8
所有sdk
1、修改文档模块部分文档中表格内内容显示不全的问题
2、修改fastsdk 竖屏全屏观看只能加入一次的问题
3、修改player sdk GSQaview"只看我的聊天"为只看我的问答


2018.5.20
Player sdk
1、增加修改加入直播后修改用户名的接口player.reName(String newName,OnTaskRet ret)
2、广播消息回调OnPlayListener.onPublicMsg的参数变更为 BroadCastMsg msg
        String content = msg.getContent();//广播消息内容
		long time = msg.getTime();//基于1970的秒数，直接fomat为指定格式
		String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH).format(new Date(time*1000));


2018.6.15
RtSDK
1、增加勋章和点赞
2、增加勋章和点赞的禁用启用状态(onSettingSet)

2018.7.15
Player SDK 
1、增加敏感词过滤接口player.textFilter和OnSensitiveWordFilter
	ChatEditText editText = …;
	editText.setOnSensitiveWordFilter(new OnSensitiveWordFilter{
		public String onFilter(src){
			return player.textFilter(src);
		}
	});
2、历史聊天消息增加发送时间，单位为毫秒：chatMsg.getTimeStamp()


2018.8.1
VodSDK 
修复极个别点播下载后拖动到某位置时候停止播放（视频不连续问题）

2018.12.3
PlayerSDK
1、修改相同用户id历史聊天记录不包含自己的问题
2、增加后台参加者私聊的功能通知 (OnChatListener  onStuPriChat)
FastSDK
1、增加点播播放器（对界面有要求的仍然需要自行实现播放界面）
2、直播中画中画模式下增加小窗口的关闭按钮
3、修改相同用户id历史聊天记录不包含自己的问题
4、增加后台参加者私聊的功能通知 (OnChatListener  onStuPriChat)
RtSDK
1、增加了小班课勋章和点赞的接口和回调
   （1）IMedalPraiseCallback：
    void onPraiseInfo(int result,String praiseType,PraiseUserInfo userinfo);   勋章或点赞通知
    void onPraiseTotal(int result,String praiseType,int total);                取获得的勋章或点赞总数
    void onPraiseRecvList(int result,String praiseType,PraiseInfo[] praises);  勋章或点赞排行榜
    void onPraiseNotify(String praiseType,  int time,PraiseUserInfo senderInfo,PraiseUserInfo receiverInfo,String comment);勋章或点赞变更通知，操作后的变化
   （2）RtSdk
   initMedalPraise(IMedalPraiseCallback callback,int defMedal,int defFavour)  加入成功后需要勋章点赞功能的情况下，初始化勋章或点赞
   sendPraise(String praiseType, long toUserId,	String toUserName, String comment, OnTaskRet taskRet)   发送勋章或给人点赞
	getPraiseTotal(String praiseType, OnTaskRet taskRet)  获取勋章或点赞总数
	getPraiseRecvList(String praiseType, int maxUser,OnTaskRet taskRet)获取点赞或勋章的排行榜
	
2019.1.5
VodSDK
1、增加点播中广播消息的回调

2019.3.15
VodSDK
1、修改点播播放中个别点播下载时发生循环卡住的情况

2019.4.12
FastSDK
1、去除文档纹理数上限
2、支持点播离线（已经下载好的点播）播放
3、增加点播缓冲加载提示loading

RtSDK
1、修改部分手机插耳机还是外放的问题

2019.5.14
RtSDK
1、添加布局控制响应接口，IRoomCallbck.onRoomWebLayoutChange(int weblayout)

2019.5.20
VodSDK
1、添加布局响应接口 OnVodPlayListener.onLayoutSet(int timeStamp,int layout)
2、修改3.7.2文档切换不显示的bug

2019.5.30
VodSDK
1、修改部分点播一开始播放不了，拖拉可播放的问题
2、修改3.7.3部分点播视频画面卡顿的问题

2019.6.7
VodSDK
1、修改新录制部分点播声音卡顿问题

2019.8.1
VodSDK:
1、增加离线下载的点播历史聊天记录接口  VodChat.getChatHistory
2、严格区分下载和播放的初始化,initParam.setDownload(true/false) 默认是false。在线播放和下载
   要分别实现一套初始化流程。
   正确的在线播放流程：
   VodSite playVodSite; 
   InitParam playInitParam; 
   OnVodListener playVodListener;
   ...
   playVodSite.getVodObject(playInitParam) - playVodListener.onVodObject - vodPlayer.play
   
   正确的下载流程：
   VodSite downVodSite;
   InitParam downloadInitPram;
   OnVodListener dlVodListener;
   ...
   downloadInitPram.setDownload(true)
   downVodSite.getVodObject(downloadInitPram) - dlVodListener.onVodObject - vodDownloader.download
   下载时，调用vodsite.getVodObject(initParam),initParam 必须设置为下载(setDownload(true))。

所有SDK
1、修改文档引起的crash问题


2019.8.30
1、rtsdk 修改没有调用init情况下调用release发生空指针的问题
2、rtsdk 修改直播端录制时候前面几秒有概率性的无画面问题
3、vodsdk 点播播放和下载回调分别增加
   void onRecordInfo（String downloadId,long startTime,long storage,long duration），播放无downloadId，
   starttime指开始录制时候的时间，基于1970的毫秒数
   storage  指存储空间占用大小，单位为Byte
   duration 指点播时长，单位毫秒
   用不上的空实现即可。

2019.9.30
1、文档显示问题和增加更多动画效果
2、playersdk支持androidx   老用户更新player sdk需要同时更新表情资源库（Player-VodDemo（3.7.8或以后）压缩文件里面的libresource）
3、修改点播播放时文档问题

2019.12.4
RtSDK 
红包接口名称统一变更（参数没变）：
hongbaoQueryBalance - queryBalance
hongbaoCreateRandom - createRandomHongbao
hongbaoCreateForSomeBody - createHongbaoForSomeBody
hongbaoGrab - grabHongbao
hongbaoQueryGrabList - queryHongbaoGrabList
hongbaoQueryList- queryHongbaoList
hongbaoQuerySelfGrabList - querySelfGrabList

FastSDK
增加点播界面tab的配置支持
增加硬解配置支持


2020.2.6
1、提升视频渲染效率 GSGLVideoView  GSTVideoView
2、多摄像头切换crash问题（p30）

FastSDK
1、点播离线播放无网情况下提示网络问题
2、点播支持设置进度，config.setPostion(毫秒)
3、点播简介无内容时候，简介tab不显示修改为显示

RtSDK
1、修改三星s10+声音录制问题
2、修改声音录制被中断等情况下发生的crash

2021.3
1、修改点播数据库异常问题
2、处理android 10 camera2的预览黑屏问题（特殊设备）

2021.7.23
1、player sdk增加aac编码（连麦）
2、player sdk增加选择点赞
3、处理GSGPUVideoview的空指针异常
4、增加mc的快速集成（需要用时请联系），暂不挂到线上
5、标注问题处理
6、权限合规 player sdk请将权限申请放到接受邀请的地方去申请，rtsdk需要暂时需要通过回调来通知之后再申请

2023.2.6
1、修复回放在高版本Android奔溃问题
2023.3.15
1、修复离线播放器拖动进度条奔溃问题
2、修复fastsdk旋转视频比例不正确问题
2023.5.6
1、修复videoSet方法不生效的问题
2、修复ByteBuffer相关的崩溃
2023.7.27
1. 解决TS多次加载引发底层死循环的问题
2023.8.27
1. vodsdk支持多实例，增加预加载方法
2. 修复内存泄露
2023.11.28
1. 修复偶现的奔溃问题
2. 优化离线点播件的问答、聊天接口
2024.3.04
1. 增加日志上报指定url功能
2. 修复fastsdk文档显示不全的问题
2024.3.21
1. Vodsdk默认以单实例启动，可以通过修改配置的方式已多实例模式启动
2. 日志上报增加sessionid
2024.4.29
1. 日志上报支持https
2024.5.22
1. 修复GSGPUVideoView控件在多实例情况下可能黑屏的问题
2. 修复播放完成后，再次播放会导致sdk卡死的bug

2024.8.09
1. fix:修复GSGPUVideoView控件在ViewPager中滑动、直播页面可能会黑屏的问题
2. feature:点播支持录制件短切片

2024.8.23
1. player sdk增加优选网络功能

2025.3.14 V3.25.2.4
1. rtsdk支持直播间级关键字过滤

2025.3.21 V3.25.3
1. rtsdk 修复在Android13中无法屏幕共享的问题
2. PlayerSDK支持HLS模式播放
3. 升级sdk支持版本为33

2025.5.19 V3.26.4
1. 日志上报增加userData和时间戳参数
2. 修复点播快速暂停和恢复时偶发的无音频情况

2025.9.04 V3.26.6
1. 修复rtsdk高分屏共享时黑屏问题
2. 修复box用户可能出现的崩溃问题

2025.9.16 V3.26.8
1. fastsdk、vodsdk适配Android14

2025.11.13 V3.26.11
1. PlayerSDK 解决特定情况下没有音频的问题
2. PlayerSDK 增加cdn切换功能
3. PlayerSDK 支持根据BOSS配置选择播放模式
4. PlayerSDK 增加当前播放模式回调

2026.3.24 V4.1.3
1. PlayerSDK 、VODSDK 增加音量调节功能

2026.3.24 V4.1.5
1. 支持直播多实例