AnyChat技术支持论坛

标题: 业务服务器向录像服务器发送录制指令问题 [打印本页]

作者: tangtangyamu    时间: 2014-10-27 19:22
标题: 业务服务器向录像服务器发送录制指令问题
业务服务器调用录制发送指令方法:
AnyChatServerSDK.StreamRecordCtrl(dwUserId, bStartRecord, dwFlags, dwParam, dwRecordServerId);
返回值为:100,这个状态吗代表什么意思,还有录制指令发送后,服务器并没有开始录制,
请问这个方法如何解决呢?

作者: admin    时间: 2014-10-27 19:26
您好,业务服务器调用API接口返回ErrorCode:100,表示业务服务器没有与核心服务器建立连接,请参考:Windows服务器部署Linux服务器部署

建议上传业务服务器日志文件(AnyChatServerSDK.log)、核心服务器日志文件(AnyChatCoreServer.log),我们帮您分析一下,谢谢。
作者: admin    时间: 2014-10-27 19:37
有关中心录像服务器的部署、开发请参考:http://bbs.anychat.cn/forum.php? ... &extra=page%3D1
作者: tangtangyamu    时间: 2014-10-27 19:49
AnyChatServerSDK.log:
[2014-10-27 19:42:22(218)]        AnyChat Server SDK Init,V5.1, Build Time:Oct 13 2014 19:09:55
[2014-10-27 19:42:22(218)]        Invoke        BRAS_InitSDK(0x0)
[2014-10-27 19:42:22(218)]        Ready to connect anychatcoreserver  ....
[2014-10-27 19:42:22(765)]        Success connected to anychatcoreserver...

AnyChatCoreServer.log:
[2014-10-27 19:41:30(875)]        ---------------------Init Service--------------------------
[2014-10-27 19:41:30(890)]        Current File Version[5, 1, 0, 0],Build time:2014-10-13 19:11:42
[2014-10-27 19:41:30(906)]        Load brservernetlayer.dll success!(V5.1, Build time:Oct 13 2014 19:11:24)
[2014-10-27 19:41:30(906)]        Start TCP Server Successed(port=8906)!
[2014-10-27 19:41:30(921)]        Start UDP Server Successed(port=8907)!
[2014-10-27 19:41:30(921)]        AnyChat IPC Filter Plus Init, Build Time:Oct 13 2014 19:11:26
[2014-10-27 19:41:30(921)]        Load SDK Filter Plus:IPCFilterPlus.dll Success, ver:SDK Filter Plus (IPC), for Windows V5.1
[2014-10-27 19:41:30(937)]        Start Server At Demo Mode!
[2014-10-27 19:42:23(281)]        Successful communicate with the business server!
[2014-10-27 19:44:18(203)]        Successful communicate with the record server!(192.168.25.27:2258, id:-1)

AnyChatRecordServer.log:
[2014-10-27 19:44:18(140)]        AnyChat Record Server Init,V5.1, Build Time:Oct 13 2014 19:10:38
[2014-10-27 19:44:18(140)]        Record Root Directory: C:\Documents and Settings\Administrator\桌面\AnyChatCoreSDK_Win32_r4297\bin\recordserver\record\
[2014-10-27 19:44:18(140)]        Ready to connect anychatcoreserver  192.168.25.27(8907)....
[2014-10-27 19:44:18(203)]        Load BRMediaUtil.dll success!(V5.2 Build Time:Oct 13 2014 19:10:51)
[2014-10-27 19:44:18(203)]        Successfully connect to the anychatcoreserver!
作者: tangtangyamu    时间: 2014-10-27 19:52
本帖最后由 tangtangyamu 于 2014-10-27 19:55 编辑

您好!相关资料已经阅读,我描述下我的环境:
核心服务器采用:AnyChatCoreSDK_Win32_r4297\bin\server
业务服务器采用:AnyChatCoreSDK_Win32_r4297\src\server\java\AnyChatBussinessServer
录像服务器采用:C:\Documents and Settings\Administrator\桌面\AnyChatCoreSDK_Win32_r4297\bin\recordserver\

在业务处理器添加一个方法,调用:
// 中心端录像控制
public static native int StreamRecordCtrl(int dwUserId, int bStartRecord, int dwFlags, int dwParam, int dwRecordServerId);
// 中心端录像控制(扩展)
public static native int StreamRecordCtrlEx(int dwUserId, int bStartRecord, int dwFlags, int dwParam, String lpUserStr, int dwRecordServerId);

但是这两个方法都是返回100,连接超时


作者: admin    时间: 2014-10-27 19:52
您好,上面的日志显示都是正常的,建议您开启业务服务器的调试模式,将会输出更多的信息。

请修改AnyChatServerSDK.ini,将DebugMode改为1,然后重启业务服务器程序即可。

另外调用API:AnyChatServerSDK.StreamRecordCtrl之前,请确保已经调用了InitSDK接口且核心服务器与业务服务器已经连接成功。
作者: tangtangyamu    时间: 2014-10-27 20:22
您好,AnyChatRecordServer.ini是设置为debug模式
DebugMode改为1
[Base Settings]
DebugMode=1
ServerIpAddr=192.168.25.27
ServerUdpPort=8907
RecordRootDir=record
RecordRootURL=http://www.anychat.cn/record/
ServerCallBackPathType=1
ClientCallBackPathType=2

调用API:AnyChatServerSDK.StreamRecordCtrl之前,请确保已经调用了InitSDK接口,我调用的是InitSDK(0),初始化方法返回0,但是AnyChatServerSDK.StreamRecordCtrl方法仍然为100,是录像服务器连接不上?还有InitSDK(0)传输的参数是否正确呢,我业务服务器采用的java代码
作者: admin    时间: 2014-10-27 20:31
您好,客户端是否已经连接上服务器?

如果连接上服务器,业务服务器日志(AnyChatServerSDK.log)应该会有相关的记录?但是从前面您上传的日志来看,并没有对应的客户端登录记录?

另外您是否运行了多个业务服务器程序?因为一个核心服务器只能对应一个业务服务器,第二个业务服务器将连接不上核心服务器,调用任何API接口都将返回ErrorCode:100。

还有InitSDK(0)传输的参数是否正确呢,我业务服务器采用的java代码

传0参数没有问题。

我调用的是InitSDK(0),初始化方法返回0,但是AnyChatServerSDK.StreamRecordCtrl方法仍然为100,是录像服务器连接不上
您是在什么时候调用的StreamRecordCtrl呢,是InitSDK之后马上就调用?

作者: tangtangyamu    时间: 2014-10-28 09:30
您好,这是业务处理器swing窗口运行控制器台信息:
V5.1 Build Time:Oct 13 2014 19:09:55
10-28 09:02:39:671  Connect AnyChatCoreServer successed!
10-28 09:02:52:296  Success connected with anychatrecordserver(id:0) ...
证明了,业务服务器和核心、录像服务器都已经连接成功!
用户登入也成功,视频双方也都打开
业务服务器添改代码如下:
BusinessServer.java:
public static AnyChatServerSDK anychat; //该成员变量改成static

同一个包内创建一个类 RecordServer.java:
package com.bairuitech.server;
public class RecordServer {
        @SuppressWarnings("static-access")
        public static void main(String[] args) {
//                System.out.println(BusinessServer.anychat.StreamRecordCtrl(1, 1, 0, 0, 0));
                System.out.println(BusinessServer.anychat.StreamRecordCtrlEx(1, 1, 0, 0, "0", 0));
        }
}
运行RecordServer的main方法,返回的100,帮我看看上面的测试方法是否正确?
作者: admin    时间: 2014-10-28 09:36
您好,您不能在main函数里面直接调用录像的API接口,因为main函数是最早运行的,而业务服务器连接核心服务器是一个异步的过程。

您应该在一些业务场景中调用录像的API接口,而不是在程序的入口main函数中,而且第一个参数userid也必须为在线用户的userid,您这样直接传一个“1”是不合适的。
作者: tangtangyamu    时间: 2014-10-28 13:59
自己写了个界面控制,在同业务环境中运行正常,录像开关功能已经实现,谢谢!
作者: tangtangyamu    时间: 2014-10-28 14:01
本帖最后由 tangtangyamu 于 2014-10-28 14:03 编辑

我们以后服务器可能会是64位windows操作系统,期待录像服务器64bit版本发布!
作者: 廖斌    时间: 2014-10-28 14:12
tangtangyamu 发表于 2014-10-28 14:01
我们以后服务器可能会是64位windows操作系统,期待录像服务器64bit版本发布!

您好,目前我们的录像服务器也是支持32位和64位的
作者: admin    时间: 2014-10-28 14:13
您好,是支持64bit服务器的,参考:AnyChat Server SDK支持64bit Java环境




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