AnyChat技术支持论坛

标题: 视频窗口是否可以改变大小和位置的问题。 [打印本页]

作者: 1001夜。雨    时间: 2014-9-19 16:15
标题: 视频窗口是否可以改变大小和位置的问题。
我们这边客户有这样一条需求就是,视频窗口能否手动改变大小和位置。不知道贵公司有没有什么解决方案?
作者: admin    时间: 2014-9-19 16:20
可以的,您只需要操作视频显示插件对象的DIV层和DMO对象即可!
作者: 1001夜。雨    时间: 2014-9-24 16:40
我们的视频展示方式是重叠展示的,大的是对方,小的是本地。2个视频切换之后(大的变成本地,小的变成对方),本地视频直接将对方视频覆盖,设置了Z-index属性也没有效果.


作者: 梁家初    时间: 2014-9-24 16:48
1001夜。雨 发表于 2014-9-24 16:40
我们的视频展示方式是重叠展示的,大的是对方,小的是本地。2个视频切换之后(大的变成本地,小的变成对方 ...

您好,这是由于视频插件特性造成的,在后续版本里会继续研究优化,谢谢
作者: admin    时间: 2014-9-24 17:13
切换的时候换一种思路,可以尝试先将之前老的视频显示控件DMO对象销毁,然后再重新创建新的视频显示控件(BRAC_SetVideoPos),看是否可以满足你们的需求?
作者: 1001夜。雨    时间: 2014-9-25 10:45
你的意思时说,这个相互覆盖的关系只是单纯的先后关系,后面的会覆盖前面的吗?

作者: admin    时间: 2014-9-25 13:30
找了一份资料供您参考:
在Web开发中我们经常通过z-index设置多个元素之间的层叠关系,这种方式在多数情况下很有效,但是如果遇到有窗体元素时这种方式常常显得无能为力,今天我们就一块看一下如何有效的解决这个问题。

网页控件分为两大类:有窗体元素和无窗体元素。无窗体元素包括大多数html元素(例如div、table等)、无窗体的ActivX插件、iframe等;有窗体的元素包括<Object>元素、ActiveX插件、Plug-ins插件、Select元素等。所有的有窗体元素都会出现在无窗体元素之上,而有窗体元素和无窗体元素自身遵循z-index属性约束(注意使用z-index必须设置相应元素的position为absolute)。所有的无窗体元素都被浏览器渲染在同一个MSHTML平面,而有窗体元素被渲染在一个单独的MSHTML平面上。在同一个MSHTML平面当然可以通过设置z-index属性设置其层叠关系,但是对于不同平面上的元素,这个属性却无能为力。这里需要注意ActiveX插件,默认情况下VB和MFC控件是有窗体的,而ALT是无窗体的。

虽然上面说到ifame属于无窗体元素,但是在ie中它却横跨两边。无论是有窗体元素还是无窗体元素在显示时都会考虑iframe的顺序。因此如果要解决无窗体元素和有窗体元素之间的层叠关系时我们可以借助于iframe:通过把有窗体元素放到iframe中,然后设置iframe的z-index大于无窗体元素来解决二者层叠关系无法调整的问题;或者在无窗体元素内部放置一个iframe,设置其z-index小于无窗体元素并且其大小同无窗体元素相同;当然如果你觉得这两种方式都太麻烦的话可以使用jQuery的bgiframe插件,它的原理同第二种方式,不过使用起来就简单多了。

上面的方式或许可以解决大多数情况,但是实际应用中或多或少会给你造成一些额外的开发成本,如果你的项目中使用的Ext来进行前台开发,那么很幸运,Ext原生就对遮盖有窗体元素进行了支持。只需要在脚本开始处加上Ext.useShims=true;即可。

您可以尝试将视频显示窗口放在ifame框架中,然后再进行iframe的层迭,设置iframe的z-index属性,参考:关于弹出DIV层被视频显示插件遮挡的解决方案
作者: 1001夜。雨    时间: 2014-9-25 17:11
我比较关注的是这两个视频对象之间的层叠关系。按照上面说的,这两个都是Object元素,设置了z-index的话,应该对他们之前的层叠的关系是有效的,但是结果还是没有作用。
作者: admin    时间: 2014-9-25 17:21
您可以尝试将视频显示窗口放在ifame框架中,然后再进行iframe的层迭,设置iframe的z-index属性

有尝试这种解决方案吗?




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