在前面发布的“AnyChat发布单向视频解决方案”中,一些应用场景需要在Web的视频上迭加文字、图片等内容来提高用户体验,AnyChat研发团队针对这种需求开放了新的API接口来实现,在AnyChatr4479版本中提供了相关的API接口。
新增API接口功能特点包括:
1、可以在视频上动态迭加文字信息,文字颜色、字体、大小、迭加位置可设置;
2、可以同时迭加不超过5条的文字信息到视频上;
3、可以动态更新文字信息迭加位置,实现文字信息的运动效果;
4、可以在视频上动态迭加图片信息,图片透明度、迭加位置可设置;
5、可以同时迭加不超过5张图片到视频上;
6、可以动态更新图片的迭加位置,实现迭加图片的运动效果;
7、支持JPEG、PNG、BMP等常用图形格式的迭加;
8、支持包含透明通道的PNG格式图片迭加;
9、支持本地图片、互联网图片的迭加,互联网图片后台缓冲,不影响视频的流畅性;
10、文字、图片迭加时采用双缓冲技术,迭加过程中视频画面不闪烁;
新增API接口定义与工作原理:
1. varANYCHATWEB_VIDEO_SO_OVERLAY = 8; //
在视频上迭加文字、图片等内容
2.
3. //
在本地视频上迭加文字
4. var szOverlayMessage ="<MESSAGE1><VALUE>Hello,AnyChat!</VALUE><XPOS>0</XPOS><YPOS>50</YPOS><FONTCOLOR>#FFFF80</FONTCOLOR></MESSAGE1>"
5. GetID("ANYCHAT_VIDEO_LOCAL").SetSDKOptionString(ANYCHATWEB_VIDEO_SO_OVERLAY,szOverlayMessage);
6.
7. //
在本地视频上迭加图片
8. var szOverlayImage ="<IMAGE1><VALUE>http://www.anychat.cn/temp/transparent.png</VALUE><XPOS>40</XPOS><YPOS>40</YPOS></IMAGE1>"
9. GetID("ANYCHAT_VIDEO_LOCAL").SetSDKOptionString(ANYCHATWEB_VIDEO_SO_OVERLAY,szOverlayImage);
复制代码
其中GetID("ANYCHAT_VIDEO_LOCAL")是获取视频显示插件的DMO对象,相关的API接口中作用于该视频显示插件。
其中szOverlayMessage、szOverlayImage是一个XML格式的字符串,包括了需要迭加的相关信息:
1、文字内容的关键字为:<MESSAGE1></MESSAGE1>……<MESSAGE5></MESSAGE5>;
2、图片内容的关键字为:<IMAGE1></IMAGE1>……<IMAGE5></IMAGE5>;
3、需要动态更新迭加内容(如移动图片)时,只需要重复调用上述API,并修改其中的相关参数即可(需要整条内容一起更新);
4、当需要取消迭加内容显示时,只需要调用一次空内容的指令即可,如varszOverlayMessage = "<MESSAGE1></MESSAGE1>”;
当前支持的XML指令关键字列表:
1、MESSAGEx,表示迭加的内容是文字,其中x表示某一段文字,目前支持1- 5;
2、IMAGEx,表示迭加的内容是图片,其中x表示某一张图片,目前支持1- 5;
3、FONTSIZE,表示迭加文字的字体大小,用数字表示,如20;
4、FONTCOLOR,表示迭加文字的字体颜色,用字符串表示,如:#FFFF80;
5、FONTNAME,表示迭加文字的字体名称,用字符串表示,如“宋体”;
6、XPOS,表示迭加信息的x坐标,用数字表示,以视频图像左上角为起点(0);
7、YPOS,表示迭加信息的y坐标,用数字表示,以视频图像左上角为起点(0);
8、VALUE,表示迭加的值,用字符串表示,当迭加内容是图片时,表示图片路径;
9、OPACITY,表示迭加透明度,用数字表示,0- 100,如果图片是PNG格式且包含透明通道,可不用设置该参数;
PS:所迭加的文字、图片只是视频显示上的渲染,不会影响到录像文件的内容(包括本地录像、服务器录像)。
更多视频通讯技术问题可咨询技术论坛:http://bbs.anychat.cn/forum.php