videoview爱情是什么么

Hi
大家好!
我在编写一个Android的多媒体的测试程序,使用类 android.widget.VideoV
可是在实际运行时,进度条和做各种动作的框架会在2~3秒钟后自动消失(淡出)。用什么方法可以是这个框架(包括进度条)不消失呢?以便于我实时查看播放的进度。
谢谢!问题补充:Sorry!
ext 是什么意思?可以具体点么?问题补充:谢谢。ExtJS我查了下,不希望那么复杂。ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写 的,主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架。
我的程序是在Eclipse下写的,有没有简单的方法?比如某个配置项,或者View的某个参数?问题补充:我的程序其他部分已经可以正常运行了
只有这个问题还是没有解决啊
各位有什么高招?我提高悬赏了啊
呵呵
Android,也在研究中
extjs是一门技术,你上网查一下就知道了
已解决问题
未解决问题读读Openmeetings的代码1
站点下的index.jsp 文件时访问的默认首页,这是个普通的jsp页面,里面调用一个flash文件:
main.swf8.swf,对应的是系统的main.lzx文件.
就从 main.lzx这个文件开始研究
打开WebContent/src下的main.lzx文件
第一个节点是 canvas ,貌似一个flash只能有一个
接着重要的是 &include href="base/" /&
将按照base目录下的library.lzx文件引用里面定义的lzx文件。其中有mainDatasets.lzx文件。该文件是一个dataset
dataset 好像是数据集的意思
在一个Lzx中文件中,如果引用了这个dataset就会自动运行oninit函数.
一个dataset有属性 src,表示数据集的数据从哪里获得
在初始化函数 oninit 中 设置了这个dataset的src就是配置文件config.xml
说明了一个问题,就是数据集,可以是xml文件
那么这个dataset初始化后,就代表了config.xml
初始化后,ondata函数会接着执行,
就是去执行 myinit函数
那就继续执行到 myinit了
这个函数应该在 canvas这个层面
先从main.lzx找
再从base/library.lzx文件查找
library.lzx是目录下的索引文件
当引用&include href="base/"
/&的时候,等于依次引用了 library.lzx里定义的内容
打开看看,重要的好像是
functions.lzx& 从名字上看貌似是定义的一些常用的函数
mainMethods.lzx 从名字上看貌似是定义的一些常用的方法
那就打开 mainMethods.lzx
找找 myinit
&method name="myinit"&
找到这个方法的定义了
函数的内容是从配置文件中得到配置的数值,设置到系统定义的属性中
lz.Browser.getInitArg('wwwroot');这样的写法是从浏览器地址栏中得到传入的参数】
继续读啊读,读到函数最后了,canvas.thishib.connect();
开始前端去连接后台服务器了
其中的服务器地址,端口,等等都已经通过dataset从config.xml得到了
连接到的是:::
&red5服务器上. hibRtmpConnection
canvas.thishib是前端和后端主要的交流的方法
这个thishib在什么地方?
在hibRtmpConnection.lzx中
打开这个文件
hibRtmpConnection是一个类
&class name="hibRtmpConnection"
extends="rtmpConnection" debug="false"
&&& src="$once{
this.protocollName+'://'+canvas.rtmphostlocal+':'+this.protocollPort+'/'+canvas.webAppRootKey+'/'+this.userScope
thishib的定义在最后一行 :
&hibRtmpConnection name="thishib" id="hib"
意思就是 定义一个 thishib对象 hibRtmpConnection
用java来说意思就是
hibRtmpConnection thishib= new hibRtmpConnection()
注意下name 和 id的区别
name是 thishib,id是 hib
可以理解 id是全局变量,name是局部变量 ,都是指一个东西。
可以在任何地方中 ,直接写 hib来调用。
但使用name来调用,必须写上前面的范围,使用 name 只能这么写&
canvas.thishib
使用id 可以 直接写& hib
hib就是 canvas.thishib,是一个东西
【重点说了canvas.thishib,因为它是前后台交互的主要手段】
回到myinit最后一行:
canvas.thishib.connect();
连接到服务器成功后 会发生事件 onconnect
具体代码 是类 hibRtmpConnection 中的 onconnect事件
这个是连接上的事件,在此之前的连接过程是
re5服务器上的代码 ApplicationAdapter.java
里面有几个重要的函数。从名字上看出意思
disconnect
ScopeApplicationAdapter类就是继承并实现了ApplicationAdapter的这几个函数
red5启动的时候执行 appStart函数
读里面的代码
clientListManager.removeAllClients();
是将全部是视频连接记录清空
因为是red5服务刚启动,清除一下数据库中的链接信息
那么连接red5服务器的时候首先执行了roomJoin函数
或者 roomConnect
旧版本叫 roomJoin 现在叫 roomConnect
前端代码 &handler
name="onconnect"&连接成功后
会依次调用一些函数
这些函数方法是一个接着一个进行调用的
这是 以前我整理的调用函数序列:现在的吧版本也许有变动
链接成功后(onconnect), 函数执行过程:
getsessiondata()
getPublicSID()
getSIPModuleStatus()
getLanguages()
getDefaultLanguage()
getLanguageByIdAndMax()
getStates()
getTimeZones()
getUserSalutations()
markSessionAsLogedIn()
secureLoginByRemote()
setRoomClientUser()
getCurrentRoomClient()
getRoomById()
setRoomValues()
setRoomValues这个函数是在mainMethods.lzx中,其他上面的一长串函数都是在hibRtmpConnection
中依次调用的。
这个函数依次过程中间会有分支,例如在某个函数中会验证是否登陆了用户,如果没有,则调用出登陆界面,函数序列执行过程终止。
【貌似在 getUserSalutations()函数中会判断是否登陆了】
在setRoomValues()方法中就会调用 会议室的界面!!!!
找到方法了 &method name="setRoomValues"
args="roomTypeId,roomId,roomObj"&
lz.testSetup(canvas,{isDirectLink:true,roomClassName:canvas.conferenceRoomModule,roomObj:roomObj});就是根据会议室不同的类型
来显示会议室界面!
会议室有4种类型,不同的类型对应不同的类文件(lzx)
以flexibleConferenceRoom为例子
flexibleConferenceRoom.lzx就是房间的布局文件
大体上左侧部分
&!--会议室的左侧(里面包含来宾列表,文件列表)--&
conferenceRoomSidebar
&!--交流信息--&
&!--白板--&
&!--会议室的右侧(包含主持人的功能模块设置,主持人的视频,以及对方的视频)--&
显示会议室界面的时候,会显示在线人员
participents是显示在线人员
其中getCurrentModeratorList貌似好像得到会议室的主持人
在这个函数中 会执行 new lz.editRecordStream这句
就是弹出自己的视频设置
这就是为什么进入会议室后会自动弹出选择视频和音频的设置界面
editRecordStream也是一个 class
注意下调用的方法
new lz.editRecordStream(canvas.main_content._content.inner);
就是new一个editRecordStream的class,显示都
canvas.main_content._content.inner 中
你也可以定义一个位置,new到这个位置中,这样弹出的界面,用户拖动的时候只能在定义的这个范围内
也可以new的时候带参数
lz.editRecordStream(canvas.main_content._content.inner,{isSyncUpdate:true,myvideocontainer:_myplayVideoTemp});
{isSyncUpdate:true,myvideocontainer:_myplayVideoTemp}就是new的时候设置这个class的一些属性
进入到editRecordStream这个类
找到 editRecordStream.lzx这个文件
&class name="editRecordStream"&
extends="labelExplorerBox" labelid="51" width="300" height="286"
x="14" y="-440" &
这个对象的位置是 x y,和width height,不解释
打开这个class先找找有没有 oninit
就是类初始化执行的函数,找到:
&handler name="oninit"&
是将你的计算机中的摄像头和录音设备找到并填充到选择列表中
我更关心的是点了“确定”按钮后程序干啥了
那就找这个确定按钮
不是很好找,为了支持多语言,界面上只显示了labelid
确定按钮是54,那就找找labelid="54"
找到&simpleLabelButton fontsize="11" visibility="${
(parent.isInterview) ? 'visible' : 'hidden' }"
labelid="54" x="80" y="240" width="100"&
找它的 onclick
第一行 this.parent.storelocaldata(); 是保存选择
最后一行是 getBroadCastId
找到这个函数
&netRemoteCallHib name="getBroadCastId"
funcname="getBroadCastId"
remotecontext="$once{ canvas.thishib }" &
又是去调用后台函数
canvas.thishib 最早就介绍了
他就是去调用后台的red5服务器上的 getBroadCastId 函数
这个函数会有返回值
具体函数大家自己找找,不读了
现在读函数的返回
&handler name="ondata"
args="value"&
ondata就是前端调用后,获得了返回事件
args="value" 是前端得到的返回参数
最后调用 parent.setUserAVSettings.doCall();
找这个函数
也是去执行red5后台函数,
就是把当前用户选择的视频和音频信息,提交到服务器上,由服务器来通知其他的会议室的人
这样其他人就可以得到这个人的视频音频信息
同样,这个函数调用成功后,有返回参数
&handler name="ondata"
args="value"&
调用成功后,会得到一个服务器返回的客户端的链接,同时执行parent.doninitalize();
找doninitalize()
注意注意,最重要的来了
doninitalize()将会设置视频音频参数,视频音频质量,以及显示方式
videoview.broadcast(this.currentClient.broadCastID,_camera,_micro);
就是将自己的视频音频信息播放出去
其他人将会得到并播放
所以要找到 videoview 这个对象看看,是个什么样的东东
broadcast应该是广播的意思。会议室的其他人将会得到这个信息,并且会在客户端自动new一个播放器窗体,播放视频信息
现在主要是找到 videoview
看看 .broadcast 到底是在干什么
videoview =
this.myvideocontainer._chatvideoinner._
是传入的一个 _videostream
myvideocontainer是这个类的一个属性
刚才我说过,new一个对象的时候,是可以带参数的, 也就是初始这个对象的一些属性
这个文件中有这么一句话
if (parent.myvideocontainer == null) {
&&&&&&&&&&&&&&&&&&&
parent.myvideocontainer =
canvas._videocontainer.getNewVideoObject(canvas.publicSID);
parent.myvideocontainer.publicSID = canvas.publicSID;
意思就是 myvideocontainer如果没初始化,就去得到一个默认的对象,总不能让它null
前面读过的代码:
new lz.editRecordStream(canvas.main_content._content.inner);
lz.editRecordStream(canvas.main_content._content.inner,{isSyncUpdate:true,myvideocontainer:_myplayVideoTemp});
第一个方法new的时候,这个属性没设置,就是null了
那现在就去找canvas._videocontainer.getNewVideoObject(canvas.publicSID)这个方法看看,到底返回的是个什么东东
前面说,进入会议室的时候,会显示在线人员,在线人员是在 participents里
participents的初始化 &handler
name="oninit"&函数中有这么一句:
canvas._videocontainer=
就是说 participents 这个对象,就设置成了 canvas._videocontainer
canvas._videocontainer 就是 participents
那么函数 getNewVideoObject(canvas.publicSID)
一定在participents& 里
果然找到了
&method name="getNewVideoObject"
args="publicSID"&
先是从界面中找找这个用户的视频播放窗体,如果找不到,在新位置上New一个
new的是 videoObjectBroadcast
Ok,明白了,费劲找到的videoview 原来是 videoObjectBroadcast
打开 videoObjectBroadcast.lzx
&class name="videoObjectBroadcast"
extends="baseVideoObject" isremote="false"&
继承baseVideoObject
打开 baseVideoObject.lzx
里面 有 _toolbar
也就是视频期界面上的工具条
自己修改下,可以加上自己要加的小按钮
&baseVideoStreamDevice name="_videostream"
mode="broadcast" bgcolor="black"&
是视频的播放内容
打开baseVideoStreamDevice.zxl
继承baseVideoStream
打开baseVideoStream.lzx
终于找到broadcast
&method name="broadcast"
args="streamName,camReference,micReference"&
注意下,这个里面还有一个方法 playStream,就是播放视频
还有一个方法 record,貌似是录制当前视频
在方法broadcast的最后一句是
this._ns.publish(streamName,"live");
实时播放用户视频
OK,在前面设置视频音频设备界面的
videoview.broadcast(this.currentClient.broadCastID,_camera,_micro);
baseVideoStream中的
&method name="broadcast"
args="streamName,camReference,micReference"&
找了半天,终于知道如何广播视频的了
读代码的过程,也知道了前台和后台是如何调用传递信息了
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。videoview.exe下载|videoview.exe修复|videoview.exe是什么 - 金山系统文件百科
电脑被木马病毒感染,videoview.exe修复下载,请用金山卫士系统文件videoview.exe是存放在Windows系统文件夹中的重要文件,通常情况下是在安装操作系统过程中自动创建的,对于系统正常运行来说至关重要。在正常情况下不建议用户对该类文件(videoview.exe)进行随意的修改。它的存在对维护计算机系统的稳定具有重要作用。如果用户电脑被木马病毒、或是流氓软件篡改导致出现videoview.exe丢失、videoview.exe确实损坏等弹窗现象,请使用金山卫士进行全面的修复!
有不少网友在论坛与QQ中像我们反馈到:不知道哪里能够下载videoview.exe、下载之后不知道videoview.exe应该放在哪里,于是金山安全专家在最新版的金山卫士中加入了系统修复引擎和系统重装功能,完美解决传统杀毒软件,只管查杀,不管修复的难题。金山卫士是一款永久免费的杀毒软件!革命性云引擎技术,精确查杀上亿木马;全新本地V10引擎,完美清除感染型木马!在保证您的电脑不受木马病毒侵害的基础上还能够修复损坏的系统文件videoview.exe,能够与所有软件完美兼容,彻底解决您的后顾之忧。
exe文件是什么?我们该如何修复videoview.exe文件?EXE文件是什么:
EXE文件 - 在windows系统中,有两种二进制可执行文件,一种后缀名为.COM,另一种即是现在所说的.EXE文件了。它是常见的文件扩展名,如果系统中的文件含有该后缀则表明它是一个可以在DOS、OpenVMS、微软Windows、Symbian和OS/ 2等操作系统系统中执行的文件。除了可执行程序,EXE文件包含许多其他组件,如位图(bitmap),图标(icon)等exe可执行程序可能会使用到的图形用户界面资源。
找不到videoview.exe、文件损坏,则系统、软件、或是游戏等程序将无法正常运行,给不少网民带来了不必要的麻烦。如果您的电脑有大量的系统文件丢失,经常弹出一些未知错误框,我们建议您使用金山卫士的重装系统功能,来解决问题。金山重装系统功能可以在10分钟帮您重装系统,该功能让您无需系统光盘。全面支持XP和WN7系统,并且不用再反复打补丁,一键重做系统,不仅如此还带有自动备份/还原关键数据,各种驱动等重要数据。
系统videoview.exe错误会带来什么危害?系统文件videoview.exe出错,是由于木马病毒、或不小心下载了流氓软件被感染所致。而该文件又是系统/程序正常运行的前提条件,所以一旦不幸被感染,通常会伴随下几种情况:
1、桌面图标无法删除(淘宝、小游戏、电影等等,重启同样不能正常删除)
2、网络游戏打不开(DNF,穿越火线,魔兽世界等等)
3、电脑无故蓝屏,
4、电脑没声音,
5、桌面无法显示。
6、主页被修改为网址导航
现在市面上的大多数安全软件对带有流氓软件性质的病毒都无法清理干净,或查杀后造成系统找不到videoview.exe文件,导致运行游戏时弹出系统文件丢失对话框。从百度、谷歌等搜索引擎搜索量情况来看,网友对系统文件videoview.exe损坏的搜索量持续上涨, 也可以确定网友对杀毒软件只能查杀却无修复功能是多么的无奈。
如何进行videoview.exe修复?请试试金山卫士
在遇到videoview.exe出错后,多半是因为中了流氓软件的招,如果您不太了解系统,不知道应该把videoview.exe放在哪,甚至于根本不了解在哪才能进行videoview.exe下载,那么请立即使用金山卫士对系统进行最全面的修复或者使用金山卫士系统重装功能。
首先,下载永久免费安全工具 金山卫士
然后,点击[查杀木马],选择[开始扫描]
金山卫士的系统修复功能,即可将常规的系统文件进行完美修复。
对于系统文件丢失严重的电脑,我们推荐您使用系统重装功能来解决问题,它可以在10分钟内为您安装全新系统,同时一键备份/还原您的重要数据,安装常用软件,让充装系统更简单。
同类exe文件下载
最新恶意网站
免费杀毒下载
金山安全专题
遇到问题不要慌,请联系我们:}

我要回帖

更多关于 爱情是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信