博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows平台AnyChat视频显示
阅读量:6261 次
发布时间:2019-06-22

本文共 1562 字,大约阅读时间需要 5 分钟。

1、如何显示本地视频,或是其它计算机上的视频?

    a)AnyChat的客户端必须初始化、登录系统、进入房间成功之后,才能显示本地视频或是其它用户的视频。

    b)AnyChat有两种方式来显示视频,分别是:自动显示(BRAC_FUNC_VIDEO_AUTODISP)、回调视频数据(BRAC_FUNC_VIDEO_CBDATA),应用程序需要在初始化()时设置相关的标志来告诉AnyChat如何处理视频的显示。

当设置了自动显示(BRAC_FUNC_VIDEO_AUTODISP)时,应用程序需要设置视频显示位置(),当打开本地用户的视频,或是请求远程用户的视频时,AnyChat内部会自动将视频显示在指定的位置;

如果没有设置自动显示标志,而只设置了回调视频数据(BRAC_FUNC_VIDEO_CBDATA)标志时,AnyChat内部不会显示视频,而是将视频数据通过回调的方式()提交给应用程序,由应用程序自己来绘制;

    c)当用户使用API接口()打开本地摄像头后,本地计算机的视频即可显示出来;

    d)当用户使用API接口()请求其它用户的视频数据时,只有该用户打开自己的摄像头之后,本地计算机才能收到对方用户的视频;

 

 

2、什么是视频显示驱动,如何选择?

    Windows平台有多种方式来实现视频的显示,常见的有GDI绘图和DirectShow两种模式。当设置AnyChat自动显示视频标志时,应用程序可以在这两种模式之间进行选择,视频显示驱动的选择需要在初始化()成功之后设置,下面的代码演示了选择DirectShow显示驱动:

 

1.
// 选择AnyChat显示驱动
2.
DWORD
 dwVideoDriver = BRAC_VSD_DIRECTSHOW;
3.
BRAC_SetSDKOption(BRAC_SO_VIDEOSHOW_DRIVERCTRL,(
const
 char*)&dwVideoDriver, sizeof(DWORD));

    AnyChat为了简化应用程序开发流程,同时也为了兼容更早期的版本,默认采用GDI绘图方式来显示视频;GDI绘图方式适合分辩率不大于CIF(352x288),同时帧率低于20FPS的视频显示;DirectShow显示模式适合高分辨率、高帧率的视频显示。

 

DirectShow显示模式在高视频质量下更节约资源;

 

    (*注:视频显示驱动选择功能为AnyChat Platform Core SDK V4.0版本新增功能)

 

3、显示的视频为何有些变形,如何设置?

    当视频显示区域的大小与视频的原始大小不成比例时,所显示的视频将会变形,所以要保证显示的视频不变形,则必须保证视频显示区域与视频的原始大小成正比关系;

    通过WM_GV_VIDEOSIZECHG消息(V4.0版本新增)可以知道每一个用户当前原始视频的大小,应用程序可以根据原始视频的大小来确定视频显示区域的大小,也可以通过API()来获取用户当前的视频大小;

    当用户进入房间时,AnyChat内部会每一个在线用户触发一次WM_GV_VIDEOSIZECHG消息;

    当用户修改视频采集分辨率时,房间内所有用户都将收到该用户的WM_GV_VIDEOSIZECHG消息;

 

4、为何有时视频被其它窗口覆盖,或是最小化后视频被遮挡,不能自动刷新?

    这主要出现在DirectShow显示模式下,主要原因是应用程序界面重绘之后,底层的DirectShow没有获得重绘的消息通知,所以导致视频被遮挡,解决方案是响应窗口的WM_PAINT消息,在消息处理函数中调用进行视频的重绘。

    AnyChat默认的GDI绘图模式下,不存在该问题。

   

转载于:https://www.cnblogs.com/megan812/p/3889421.html

你可能感兴趣的文章
VMware给虚拟机绑定物理网卡
查看>>
ROS中测试机器人里程计信息
查看>>
Python 能做什么?
查看>>
RecyclerView分隔线定制
查看>>
python-i春秋验证码识别
查看>>
Es对于日期处理
查看>>
深入理解 Java 动态代理机制
查看>>
Go基础系列:简单数据类型
查看>>
[UWP]合体姿势不对的HeaderedContentControl
查看>>
使用RSA加密在Python中逆向shell
查看>>
MS UI Automation
查看>>
Android开发指南(41) —— Searchable Configuration
查看>>
现代软件工程 怎么教好课 (读书笔记)
查看>>
磁盘fat32转NTFS
查看>>
关于和技术人员交流的一二三
查看>>
Ubuntu10下MySQL搭建Amoeba系列(文章索引)
查看>>
产生sdp文件供DSS使用
查看>>
《洛克菲勒留给儿子的38封信》 第五封:要有竞争的决心
查看>>
STL vector vs list function comparison:
查看>>
应用服务器和web server 的区别
查看>>