AnyChat技术支持论坛

标题: 设置视频位置问题 [打印本页]

作者: 幻影    时间: 2014-1-6 19:02
标题: 设置视频位置问题
BRAC_SetVideoPos设置视频显示位置失败,这个有没有需要什么前置方法?
作者: admin    时间: 2014-1-6 21:15
您好,请问设置后,有没有出现"AnyChat"的背景图片?
作者: 幻影    时间: 2014-1-6 21:57
admin 发表于 2014-1-6 21:15
您好,请问设置后,有没有出现"AnyChat"的背景图片?

您好,我是自己另外写了,前面初始化,进入房间都是成功的,但是一到设置视频位置返回值就是undefined,

另外BRAC_SetVideoPos(0, GetID("AnyChatRemoteVideoDiv"), "ANYCHAT_VIDEO_LOCAL");
不知道这个ANYCHAT_VIDEO_LOCAL和ANYCHAT_VIDEO_REMOTE有什么区别。
作者: admin    时间: 2014-1-6 23:21
第一个参数是UserId,不能为0喔!

第三个参数是视频显示插件ID,您可以自己定义一个字符串,后面如果需要设置显示背景图片,就需要通过这个插件ID来取得插件对象,参考:http://bbs.anychat.cn/forum.php?mod=viewthread&tid=172&extra=page%3D2

作者: 幻影    时间: 2014-1-7 11:21
BRAC_SetVideoPos(mSelfUserId, GetID("AnyChatRemoteVideoDiv"), "ANYCHAT_VIDEO_LOCAL"
我改成自己的用户ID,返回值还是undefined;还是不知道是哪里出问题了。
作者: admin    时间: 2014-1-7 11:30
您看一下我们标准demo的:index.html,里面是有一个div,id=AnyChatRemoteVideoDiv,您自己写的代码中,是不是忽略了这一点?
作者: 幻影    时间: 2014-1-7 11:36
admin 发表于 2014-1-7 11:30
您看一下我们标准demo的:index.html,里面是有一个div,id=AnyChatRemoteVideoDiv,您自己写的代码中,是 ...

这个div我写了的
<body onload="initSDK()" style="  font-family:微软雅黑; margin:0;">
<div style="height:100%; width:100%; position:absolute">
    <div  id="flashobject" style=" float:left;  height:50%; width:50%;" ></div>
   <div id="AnyChatRemoteVideoDiv" style="width:502px; height:348px; text-align:center;"></div>
</div>
</body>
作者: admin    时间: 2014-1-7 11:44
您好,可以将您的代码上传,我们帮您调试一下看看问题在哪儿。
作者: 幻影    时间: 2014-1-7 11:49
admin 发表于 2014-1-7 11:44
您好,可以将您的代码上传,我们帮您调试一下看看问题在哪儿。

嗯,麻烦了
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>AnyChat for Web SDK Demo</title>
<!-- 加载AnyChat for Web SDK库  -->
<script src="js/swfobject.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript" src="./js/anychatsdk.js" charset="GB2312"></script>
<script language="javascript" type="text/javascript" src="./js/anychatevent.js" charset="GB2312"></script>
<script language="javascript" type="text/javascript" src="./js/advanceset.js" charset="GB2312"></script>
<!-- 加载业务逻辑控制脚本  -->
<script language="javascript" type="text/javascript" src="./js/logicfunc.js" charset="GB2312"></script>

<script type="text/javascript">
/******初始化控件*********/
    function initSDK() {
       var errorcode=BRAC_InitSDK("0");
        if (errorcode == 0) {
            BRAC_GetVersion(0);
            BRAC_GetVersion(1);
            BRAC_GetSDKOptionString(BRAC_SO_CORESDK_BUILDTIME);
            loadflash();
        }
    }

    /******加载flex**********/
    function loadflash() {
        var _ST = new Date().getMilliseconds();
        var so = new SWFObject("shipin.swf?_ST=" + _ST, "main", "100%", "190%", "8", "#FFFFFF");
        so.addParam("quality", "high");
        so.addParam("wmode", "opaque");
        so.addParam("allowScriptAccess", "always");
        so.addParam("allowFullScreen", "true");
        so.useExpressInstall("expressinstall.swf?_ST=" + _ST);
        so.write("flashobject");
    }

    function getSWF(movieName) {
        if (navigator.appName.indexOf("Microsoft") != -1) {
            return window[movieName];
        } else {
            return document[movieName];
        }
    }

    function loadBuff() {
        getSWF("main").loadBuffEx(myBuf);
    }

    function BRAC_SetVideoPos1(userid, parentid, videoid) {
        alert(BRAC_SetVideoPos(mSelfUserId, GetID("AnyChatRemoteVideoDiv"), "ANYCHAT_VIDEO_LOCAL"));
    }

</script>
<link href="./css/demo.css" rel="stylesheet" type="text/css" />       
<link href="./css/advanceset.css" rel="Stylesheet" type="text/css" />
</head>

<body onload="initSDK()" style="  font-family:微软雅黑; margin:0;">
<div style="height:100%; width:100%; position:absolute">
    <div  id="flashobject" style=" float:left;  height:50%; width:50%;" ></div>
   <div id="AnyChatRemoteVideoDiv" style="width:502px; height:348px; text-align:center; float:right;"></div>
</div>
</body>
</html>

剩下的初始化、登录、传值都是通过flex调用的控件
作者: admin    时间: 2014-1-7 11:55
您好,您的代码中,没有看到有地方调用:BRAC_SetVideoPos1,是否可以写一个简单的demo,去掉flex、flash等部分,然后上传,我们帮您调试一下?
作者: admin    时间: 2014-1-7 11:59
另外BRAC_SetVideoPos是没有返回值的,您可以alert(GetID("AnyChatRemoteVideoDiv"));,看是否正常?
alert(BRAC_SetVideoPos(mSelfUserId, GetID("AnyChatRemoteVideoDiv"), "ANYCHAT_VIDEO_LOCAL"));

作者: 幻影    时间: 2014-1-7 13:14
admin 发表于 2014-1-7 11:55
您好,您的代码中,没有看到有地方调用:BRAC_SetVideoPos1,是否可以写一个简单的demo,去掉flex、flash等 ...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>AnyChat for Web SDK Demo</title>
<!-- 加载AnyChat for Web SDK库  -->
<script src="js/swfobject.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript" src="./js/anychatsdk.js" charset="GB2312"></script>
<script language="javascript" type="text/javascript" src="./js/anychatevent.js" charset="GB2312"></script>
<!-- 加载业务逻辑控制脚本  -->
<script language="javascript" type="text/javascript" src="./js/logicfunc.js" charset="GB2312"></script>

<script type="text/javascript">
/******初始化控件*********/
    function initSDK() {
       var errorcode=BRAC_InitSDK("0");
        if (errorcode == 0) {
            BRAC_GetVersion(0);
            BRAC_GetVersion(1);
            BRAC_GetSDKOptionString(BRAC_SO_CORESDK_BUILDTIME);
            BRAC_Connect("demo.anychat.cn", "8906");
            BRAC_Login("1", "1",0);
            //loadflash();
        }
    }

    function denglu() {
        alert("进入房间"+BRAC_EnterRoom(1, 0));
        alert("设置视频位置" + BRAC_SetVideoPos(mSelfUserId, GetID("AnyChatRemoteVideoDiv"), "ANYCHAT_VIDEO_LOCAL")); ;
    }

    /***打开本地视频****/
    function shiping() {
       BRAC_UserCameraControl(-1, 1);
    }

</script>
<link href="./css/demo.css" rel="stylesheet" type="text/css" />       
<link href="./css/advanceset.css" rel="Stylesheet" type="text/css" />
</head>

<body onload="initSDK()" style="  font-family:微软雅黑; margin:0;">
<div style="height:100%; width:100%; position:absolute">
    <input type="button" onclick="denglu()" value="进入房间"/>
    <input type="button" onclick="shiping()" value="打开视频"/>
   <div id="AnyChatRemoteVideoDiv" style="width:502px; height:348px; text-align:center; float:right;"></div>
</div>
</body>
</html>
作者: admin    时间: 2014-1-7 13:55
您好,您提供的代码存在几个问题:
1、onload="initSDK()" ,在里面必须要有:setTimeout(function () { });,即必须要等到页面加载完成才能初始化sdk;
2、BRAC_Connect("demo.anychat.cn", "8906");其中第二个参数8906不是字符串,而应该是整型,开发手册有详细的说明;
3、BRAC_EnterRoom(1, 0),其中该API需要三个参数,如:BRAC_EnterRoom(1, "", 0);
4、上面的代码中并没有提供GetID的function,也会导致出错;
5、AnyChat是由一系列事件驱动的,可参考:http://www.anychat.cn/faq/index. ... 2&id=193&artlang=zh
……

还是建议您参考一下标准示例程序源代码,谢谢。





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