AnyChat技术支持论坛

标题: 发视频之前查询用户的视频分辨率 [打印本页]

作者: 淡竹叶    时间: 2015-10-16 12:19
标题: 发视频之前查询用户的视频分辨率
您好,请问一下,发送视频之前能否查询用户的视频分辨率?只要web端和手机端都连接核心服务器登录就行,还是需不需要先进入房间?
我现在是都登录了,但var errorcode = BRAC_QueryUserStateString(mTargetUserId,BRAC_USERSTATE_VIDEOSIZE);

返回值为空
这个方法获取视频分辨率需要手机端做什么操作吗?
谢谢

作者: 佰锐科技-李友勤    时间: 2015-10-16 12:44
您好,此方法是查询指定用户的视频分辨率。需要该用户打开视频后才能获取到对方的设置。打开音视频需要进入房间后才能进行操作。
作者: 淡竹叶    时间: 2015-10-16 12:51
佰锐科技-李友勤 发表于 2015-10-16 12:44
您好,此方法是查询指定用户的视频分辨率。需要该用户打开视频后才能获取到对方的设置。打开音视频需要进入 ...

那有没有打开视频之前就能确定对方视频分辨率的,如果没有的话,那我怎么根据对方视频的分辨率动态的调整web端的显示区域以至于视频不变形?因为视频通话开始的时候画面已经加载到指定的div中了,我怎么在加载之前就能获取到对方视频的分辨率,从而动态的改变实现的div大小
作者: 佰锐科技-陈伟    时间: 2015-10-16 13:50
淡竹叶 发表于 2015-10-16 12:51
那有没有打开视频之前就能确定对方视频分辨率的,如果没有的话,那我怎么根据对方视频的分辨率动态的调整 ...

您好 请求对方视频时就可以获取到对方视频的参数!
设置显示时,可以根据获取到的视频分辨率调整显示比例和大小
作者: admin    时间: 2015-10-16 14:14
那有没有打开视频之前就能确定对方视频分辨率的,如果没有的话,那我怎么根据对方视频的分辨率动态的调整web端的显示区域以至于视频不变形?

您好,请参考:在Web页面实现1:1显示视频,关注里面的事件:
  1. // 用户视频分辩率发生变化,dwUserId(INT)表示用户ID号,dwResolution(INT)表示用户的视频分辨率组合值(低16位表示宽度,高16位表示高度)
  2. function OnAnyChatVideoSizeChange(dwUserId,dwResolution){
  3.         if(dwUserId!=mTargetUserId)
  4.                 return;
  5.         var width=dwResolution&0x0000ffff;
  6.         var height=dwResolution>>16;
  7.         GetID("ANYCHAT_VIDEO_REMOTE").style.width=width+"px";
  8.         GetID("ANYCHAT_VIDEO_REMOTE").style.height=height+"px";
  9.         AddLog("OnAnyChatVideoSizeChange(dwUserId=" + dwUserId + ", dwResolution=" + width + "x" + height + ")", LOG_TYPE_EVENT);
  10. }
复制代码

作者: 淡竹叶    时间: 2015-10-16 14:39
admin 发表于 2015-10-16 14:14
您好,请参考:在Web页面实现1:1显示视频,关注里面的事件:

您好,按照这个写的,直接写上这个事件,通话开始的时候并没有进入该回调函数里面去
作者: 淡竹叶    时间: 2015-10-16 14:40
佰锐科技-陈伟 发表于 2015-10-16 13:50
您好 请求对方视频时就可以获取到对方视频的参数!
设置显示时,可以根据获取到的视频分辨率调整显示比 ...

您好,我在请求视频时调用barc_queryuserstatestring也没有拿到分辨率相关数据
作者: 淡竹叶    时间: 2015-10-16 14:43
佰锐科技-陈伟 发表于 2015-10-16 13:50
您好 请求对方视频时就可以获取到对方视频的参数!
设置显示时,可以根据获取到的视频分辨率调整显示比 ...

而且经过您说的设置内核参数
BRAC_SetSDKOption(BRAC_SO_VIDEOSHOW_CLIPMODE,ANYCHAT_VIDEOCLIPMODE_DYNAMIC);
后,远程视频都没有显示了
作者: 佰锐科技-李友勤    时间: 2015-10-16 14:55
淡竹叶 发表于 2015-10-16 14:43
而且经过您说的设置内核参数
BRAC_SetSDKOption(BRAC_SO_VIDEOSHOW_CLIPMODE,ANYCHAT_VIDEOCLIPMODE_DYN ...

您好,anychat在显示音视频之前(进入房间,请求音视频后),如果打开音视频正常,这时是可以获取对方的视频分辨率的,这时可以调用查询接口,将查询到的分辨率,分割为相应的位置值,在显示位置接口中使用即可。
作者: 陈文仲    时间: 2015-10-16 14:59
淡竹叶 发表于 2015-10-16 14:40
您好,我在请求视频时调用barc_queryuserstatestring也没有拿到分辨率相关数据

您好,在请求对方视频后,可以用定时器循环去查询,查询的方法:BRAC_QueryUserStateInt(mTargetUserId,BRAC_USERSTATE_VIDEOSIZE);  //mTargetUserId  为用户id
作者: 淡竹叶    时间: 2015-10-16 15:03
陈文仲 发表于 2015-10-16 14:59
您好,在请求对方视频后,可以用定时器循环去查询,查询的方法:BRAC_QueryUserStateInt(mTargetUserId,B ...

您好,我在这里面均获取不到,弹出来的都是空
function onSendVideoCallRequestSucess(mTargetUserId)
{       
        this.mTargetUserId=mTargetUserId;
        var errorcode = BRAC_QueryUserStateString(mTargetUserId,BRAC_USERSTATE_VIDEOSIZE);
        alert("获取分辨率为:"+errorcode);
        setVideoShow('aaa', 'bbb');
        var errorcode2 = BRAC_QueryUserStateString(mTargetUserId,BRAC_USERSTATE_VIDEOSIZE);
        alert("获取分辨率为:"+errorcode2);
}
作者: 陈文仲    时间: 2015-10-16 15:09
淡竹叶 发表于 2015-10-16 15:03
您好,我在这里面均获取不到,弹出来的都是空
function onSendVideoCallRequestSucess(mTargetUserId)
...

查询的接口是:BRAC_QueryUserStateInt,需要循环去检测,请求后如果对方视频流没有过来,那是无法正常获取到数据的。还有上面说的OnAnyChatVideoSizeChange也是可以正常获取到用户的分辨率的,可以参考我们的demo:AnyChatWebDemo
作者: 淡竹叶    时间: 2015-10-16 15:20
陈文仲 发表于 2015-10-16 15:09
查询的接口是:BRAC_QueryUserStateInt,需要循环去检测,请求后如果对方视频流没有过来,那是无法正常获 ...

OnAnyChatVideoSizeChange是要什么触发条件吗,我的这个时间回调不进去,
function OnAnyChatVideoSizeChange(dwUserId,dwResolution){
        alert("进来了");}
视频都加载到div中都没有alert出来
作者: 佰锐科技-李友勤    时间: 2015-10-16 15:24
淡竹叶 发表于 2015-10-16 15:20
OnAnyChatVideoSizeChange是要什么触发条件吗,我的这个时间回调不进去,
function OnAnyChatVideoSizeC ...

您好,函数需要与回调消息进行关联,才能在通知后自动调用该函数,可参考我们的demo anychatevent.js中的消息关联函数。
作者: 淡竹叶    时间: 2015-10-19 17:10
admin 发表于 2015-10-16 14:14
您好,请参考:在Web页面实现1:1显示视频,关注里面的事件:

您好,麻烦咨询下,,,,,这里面返回过来的视频分辨率和什么有关,设备还是配置??
比如我现在默认的,web和android视频时,进入js方法的安卓用户id和web用户id返回的分辨率都是320*480。
等我修改anychat核心服务的配置参数改为1280*720后,安卓用户的分辨率还是320*480,web变成1280*720,请问两个分辨率分别和什么相关??
还有就是您之前回复过我一个BRAC_SetSDKOption(BRAC_SO_VIDEOSHOW_CLIPMODE,ANYCHAT_VIDEOCLIPMODE_DYNAMIC);方法,当时看的介绍就是指定后视频参数1:1,,,不合适的地方会进行黑边操作,但是当时加上之后正常的视频功能都不能进行。所以我问问我现在想要根据视频分辨率来1:1显示画面(不介意留黑边),需要怎么操作
作者: 陈文仲    时间: 2015-10-19 17:26
淡竹叶 发表于 2015-10-19 17:10
您好,麻烦咨询下,,,,,这里面返回过来的视频分辨率和什么有关,设备还是配置??
比如我现在默认的 ...

您好,返回的视频分辨率是指当前用户使用的分辨率。而修改服务器配置后,android的还是原来的分辨率是因为android端本身有设置视频的分辨率,没有使用服务器的参数。如果要实现1:1显示画面,参考5楼的做法,不需要修改裁剪模式(BRAC_SetSDKOption(BRAC_SO_VIDEOSHOW_CLIPMODE,ANYCHAT_VIDEOCLIPMODE_DYNAMIC);)。




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3