设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 12473|回复: 15
打印 上一主题 下一主题

求教停止录像的问题,急!!!!!

[复制链接]

10

主题

32

帖子

140

积分

注册会员

Rank: 2

积分
140
跳转到指定楼层
楼主
发表于 2017-10-21 09:24:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在用BRAC_StreamRecordCtrlEx来启动录像,但是用BRAC_StreamRecordCtrlEx来停止录像总是报错,返回的errorcode是354。如果我不点击停止,而是直接退出房间,那系统自动调用的停止函数却可以执行。请问,这个停止的函数具体怎么调用?另处,能不能发一个错误代码的详细说明?技术文档里的错误代码提示找不到相当的说明。
附代码如下。

//设置开始录像按钮
function startrecord(){
        var eset = BRAC_SetSDKOption(BRAC_SO_RECORD_FILETYPE, 0);    // 录制为MP4格式
        var dwFlags = ANYCHAT_RECORD_FLAGS_VIDEO + ANYCHAT_RECORD_FLAGS_AUDIO + BRAC_RECORD_FLAGS_SERVER + BRAC_RECORD_FLAGS_LOCALCB; //音频+视频+服务器录制+触发回调
        var myname =formateDateAndTimeToString()+"_"+mSelfUserId+"_"+mTargetUserId;
        var szUserStr = '{"filename":"'+myname+'"}';
        var ecode = BRAC_StreamRecordCtrlEx(mTargetUserId, 1,  dwFlags, mSelfUserId, szUserStr);
        AddLog("BRAC_StreamRecordCtrl(start)=" + ecode, LOG_TYPE_API);
        if(ecode == 0){
                GetID("startrecord").innerHTML = "正在录像";
        }else{
                alert("error!");
        }
}


//设置停止录像按钮
function stoprecord(){
        var ecode = BRAC_StreamRecordCtrlEx(mTargetUserId, 0, 0, mSelfUserId, "");
        AddLog("BRAC_StreamRecordCtrl(stop)=" + ecode, LOG_TYPE_API);
        if(ecode == 0){
                GetID("startrecord").innerHTML = "开始录像";
        }else{
                alert("error!");
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

沙发
发表于 2017-10-22 12:21:32 | 只看该作者
您好,根据354错误,是媒体流缓冲时间不足,有可能是您的录制时间不足10秒。具体问题分析还得麻烦您发下日志来看看,帮您分析下。
开始和停止除了bStartRecord启动录像1,或是停止录像0这个参数不同外,其它请统一一样。
回复 支持 反对

使用道具 举报

10

主题

32

帖子

140

积分

注册会员

Rank: 2

积分
140
板凳
 楼主| 发表于 2017-10-26 13:12:25 | 只看该作者
佰锐科技-刘冬明 发表于 2017-10-22 12:21
您好,根据354错误,是媒体流缓冲时间不足,有可能是您的录制时间不足10秒。具体问题分析还得麻烦您发下日 ...

再请教您一个问题,我现在怎么能获取到录像的分辩率,BRAC_QueryUserState(dwParam,BRAC_USERSTATE_VIDEOSIZE)
这个方法总是不能返回数据。系统录像的时候有没有默认的分辩率设置。
回复 支持 反对

使用道具 举报

地板
发表于 2017-10-27 09:27:42 | 只看该作者
有的,您如果不设置本地采集分辨率的话(BRAC_SO_LOCALVIDEO_WIDTHCTRL,BRAC_SO_LOCALVIDEO_HEIGHTCTRL),就会按服务器默认配置参数设置。
回复 支持 反对

使用道具 举报

10

主题

32

帖子

140

积分

注册会员

Rank: 2

积分
140
5#
 楼主| 发表于 2017-10-28 16:41:54 | 只看该作者
佰锐科技-刘冬明 发表于 2017-10-27 09:27
有的,您如果不设置本地采集分辨率的话(BRAC_SO_LOCALVIDEO_WIDTHCTRL,BRAC_SO_LOCALVIDEO_HEIGHTCTRL) ...

对,我就是这个意思,但是在我设置采集分辩率的时候是不是应该先获取对方视频设备的分辩率?怎么获取?
回复 支持 反对

使用道具 举报

6#
发表于 2017-10-30 08:59:30 | 只看该作者
本帖最后由 佰锐科技-刘冬明 于 2017-10-30 09:00 编辑

您可通过“BRAC_QueryUserState”接口传进BRAC_USERSTATE_VIDEOSIZE参数随时查询指定用户的视频分辨率。详情可查看开发文档。同时本地采集分辨率是采集自己的,与对方分辨率无关。
回复 支持 反对

使用道具 举报

10

主题

32

帖子

140

积分

注册会员

Rank: 2

积分
140
7#
 楼主| 发表于 2017-10-31 13:07:48 | 只看该作者
佰锐科技-刘冬明 发表于 2017-10-30 08:59
您可通过“BRAC_QueryUserState”接口传进BRAC_USERSTATE_VIDEOSIZE参数随时查询指定用户的视频分辨率。详 ...

我现在的情况是获取不到用户的分辩率。
var remoteuservideosize=BRAC_QueryUserStateInt(mTargetUserId,BRAC_USERSTATE_VIDEOSIZE);
alert(uservideosize);
现在是这样,如果对方在线的话,获取自己和对方的分辩率的值是像15728960、31457920这样的;
如果对方不在线,就可以获取自己的分辩率,值就是像320*240、640*480这样的。
是不是我的方法用的不对。但用BRAC_QueryUserStateString方法也不行。
回复 支持 反对

使用道具 举报

8#
发表于 2017-10-31 14:04:39 | 只看该作者
您好,通过这个接口获取的分辨率,低16位表示宽度,高16位表示高度,用以下代码来获取:
var height=remoteuservideosize>>16;  //获取高度
var width=remoteuservideosize & 0x0000ffff;  //获取宽度
回复 支持 反对

使用道具 举报

10

主题

32

帖子

140

积分

注册会员

Rank: 2

积分
140
9#
 楼主| 发表于 2017-11-1 16:39:19 | 只看该作者
佰锐科技-梁国桦 发表于 2017-10-31 14:04
您好,通过这个接口获取的分辨率,低16位表示宽度,高16位表示高度,用以下代码来获取:
var height=remot ...

还有一个问题,我现在是32位系统,如果换成64位系统的话,tomcat下的anychatserver4java.dll、AnyChatServerSDK.dll、AnyChatServerSDK.ini、AnyChatServerSDK.log这几个文件通用不通用?
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9109

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9109
10#
发表于 2017-11-1 16:41:48 | 只看该作者
也需要更换为64bit的版本,参考:AnyChat Server SDK支持64bit Java环境
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-12-5 18:19 , Processed in 0.135599 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表