CN1466076A - 探索浏览器 - Google Patents
探索浏览器 Download PDFInfo
- Publication number
- CN1466076A CN1466076A CNA021234892A CN02123489A CN1466076A CN 1466076 A CN1466076 A CN 1466076A CN A021234892 A CNA021234892 A CN A021234892A CN 02123489 A CN02123489 A CN 02123489A CN 1466076 A CN1466076 A CN 1466076A
- Authority
- CN
- China
- Prior art keywords
- channel
- browser
- window
- function
- seaching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
一种浏览器工具,属于网络与多媒体的通信技术领域,作为应用程序结合计算机一起使用。它除了提供一般浏览器的功能外,还增加了许多特色功能:1.主界面除了标准的主窗口外,还另设了四个小窗口分别作为固定频道、浏览频道、娱乐频道和广播频道的主窗口,可同时进行网上浏览、音频视频节目欣赏、办公、播打网络电话、发送音频视频广播等。(见摘要附图)2.用一个进程多个线程的浏览方式,浏览速度快,资源占用少。3.自动设定带宽分配。
Description
在最近的几十年里,网络在技术与应用的双重推动下以惊人的速度向前发展,网络、主机和用户的数目在急剧地增加,网络服务和网络应用更加广泛、多样。探索浏览器就是在这种情况下诞生的,它是为了适应现代化数字技术时代的要求,也主要是为了更方便用户浏览多媒体网站的需求。
技术领域
探索浏览器属于网络与多媒体的通信技术领域。在这一领域,该浏览器更方便了用户浏览实时的多媒体网站,更可以自动设定带宽,以适应自己的带宽需求。
技术背景
由于采用面向对象方法开发软件具有明显的优点,本软件将采用面向对象方法进行开发。由于采用面向对象的***模型可以使整个软件***的结构变得更加灵活,本***的结构模型将采用面向对象的***模型,采用VC++6.0这个可视化开发工具进行编码。探索浏览器界面类似IE,但它是一个多文档程序,工具条采用IE风格。它在底层采用了IHtmlDocument2和IwebBrowser接口,很多部分是用COM实现的。比如要禁止探索浏览器的右键菜单,可以用IDocHostUIHandler::ShowContextMenu方法来实现。IDocHostUIHandler也是一个很重要的接口,它的功能主要就是控制用户接口特性的能力,这些特性指的是掌管WebBrowser控件的应用程序中的菜单、工具栏、滚动条、上下文菜单以及3D边框,那么只要实现IDocHostUIHandler接口就可以了。另外,还有很多接口,如IHTMLElement和IHTMLStyle,可以对探索的各个元素进行控制,使探索浏览器更具灵活性。
发明内容
探索浏览器除了IE的标准功能以外,它还有自己的特色功能:
1、探索浏览器的主界面除了标准的主窗口外还增加了另外的四个小窗口分别作为固定频道、浏览频道、娱乐频道和广播频道的主窗口。
2、采用一个进程多个线程的浏览方式,增加了在浏览网页的时候有更快的浏览速度和更少的占用资源。而其他浏览器则是打开新窗口多进程的方式,随着打开面页面增多,所占用的内存则快速增长。探索浏览器相对的可执行文件更少,占用资源也更低。同时由于采用了一个进程多个线程的浏览方式,还可以方便在各个浏览页面之间进行切换,切换标签放在状态栏上,增大了浏览空间,方便了浏览
3、探索浏览器也可以根据用户的需求自动设定带宽分配。
附图说明
1、附图1:清楚地表达了探索浏览器不同于其他浏览器的主界面
2、附图2:探索浏览器的主界面上有一个固定的窗口即固定频道,它用来播放固定客户的信息。这个窗口在源程序里已经写定了,最终使用者没有权限关闭它。这个窗口用来播发固定客户的信息,窗口上还设有频道的按钮,用来控制其它频道的开关。在这个窗口的右边,还有几个小按钮,它们主要是用来控制其它Internet的图像,声音和视频。当您点击这个窗口的全屏按钮,就可以使当前小窗口显示的内容占据整个客户区,提供最大的浏览空间。
3、探索浏览器主界面的右边还有三个小窗口,它们分别是浏览频道,娱乐频道和广播频道。这三个频道用户是可以控制的,可以随时开启和关闭。
1)附图3:浏览频道可以用来登陆网站,它和探索浏览器的主浏览区一样,也可以后退,前进、停止等。如果想让它放大的话,点击全屏按钮就会指向探索浏览器的客户区。
2)附图4:娱乐频道主要是供使用者欣赏CD、VCD、DVD或电视节目,可以调节音量,立体声左、右声道的控制,有全屏按钮,点击后可指向探索浏览器的客户区。
3)附图5:广播频道的功能更加强大,它是一个局域网的多媒体广播站,可以同时发送图像,声音和视频,而且是实时的。根据客户的不同需求,还可以建设成局域网的视频点播***等。
具体实施方式
1.网络带宽的实施方式:
探索浏览器的核心功能是网络带宽分配,此功能主要是用OnTimer和Socket来实现的。
设计一个流量发送器,比如要指定要2Mb/s流量,用OnTimer和Socket来结合,发给网页,比如说指定产生2Mb/s流量,我的程序就发送2Mb/s流量到网络上。假设是发送文件,就用定时,比如4000Kb/S。换算成BYTE就是4000/8KByte/s,那就定时100ms,一次发送4000/80K BYTE就可以了。
另外还要考虑对方是否收到,SOCKET每次最多发送512KB。具体方法是:只要缓冲区里有数据就立即发送。发了信息,客户端返回信息给服务器,表示收到,服务器再发!
首先设定一个长整型的全局变量,然后做一个定时器,在定时器内,把限制流量的函数赋给长整型变量,这样通过循环,把数据包发送出去,如果缓冲区有数据,就立即发送,一直到缓冲区没有数据的时候,才停止数据包的发送。
探索浏览器使用UDP来发送数据包,因为声音和视频信息是实时信息,没有重发的必要,而且如果它有数据错误并不会有很大影响,如果用TCP的话,在网络状况较差的情况下,或者网络状况变化比较大的情况下,发送情况就十分不理想了。
2.另外为了不影响其它的程序运行,探索采用了多线程机制。也就是每个窗口都是一个多线程,这样做的好处就是让***自动分配CPU的时间,让用户感觉这几个窗口是同时运行的。
比如:我要显示对话框里的HTML网页文件。就要在对话框的初始化之前开启多线程。
首先定义一个指向线程的指针,然后这个指针指向一个全局函数来开启多线程。
3.固定频道的实现:
固定窗口是在主窗口中创建的,用改变子窗口、弹出窗口和顶层窗口的大小的函数和移动窗口的函数来实现的,其中改变子窗口和顶层窗口的函数可以让窗口任意放到您想要的位置。实现过程如下:
首先为顶层窗口分配内存,然后定义一个指向主窗口的指针,通过函数获得窗口的矩形大小,再通过***函数获得标题栏的高度和边框的高度,设定窗口的顶边和右边,动态创建对话框的窗口,并用移动函数把窗口移动到屏幕的最右边和最上边,最后用函数把窗口显示出来就可以了。
如果要让固定窗口的内容全屏幕显示,就先要在主窗口设一个固定窗口的指针变量,设一个BOOL变量,当为真的时候,这个指针就指向固定窗口,否则就不指向固定窗口。还有要在浏览区的客户区也要设一个同样的变量和函数,这样就可以点击全屏时就指向浏览器的客户区了。
控制Internet声音和Internet图像是通过修改注册表来实现的,当关闭internet声音和图像时,需要重新启动探索浏览器才能生效。实现方法如下:
首先定义一个注册表句柄和返回值,再定义一个写入注册表的类型和写入的字符数,然后再定义注册表路径,设一个BOOL值,判断注册的表路径是否为no的时候,就关闭Internet图像和声音,当注册的表路径为yes的时候,就打开Internet图像和声音
4.浏览频道的实现:
浏览频道也是在主窗口里创建的,使用一个C++类,通过它的指针,指向浏览频道的对话框。实现方法如下:
首先在主窗口的初始里创建工具条,先生成一个成员变量,然后通过Create创建,并用函数把窗口显示出来。如果要对小窗口的内容进行重画,可以做一个线程的优先级和主程序一样,时时更新就可以了。写一个浏览网页的C++类,在对话框的线程里,通过这个浏览网页的指针指向浏览窗口的句柄,然后通过循环不断地更新网页。并在创建的线程里,捕抓***重画消息,向对话框发重画消息,这样浏览窗口就可以进行重画了。如果要让探索打开网页时都在同一个窗口,就要在浏览器的客户区加一个打开新窗口的虚函数,并用Navigate2函数打开网页。
5.娱乐频道的实现方式:
利用ActiveXMovie控件来创建的一个视频播放器,该播放器支持多种格式,它具有一般的播放功能,能播放*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,还能控制音量大小,左右声道等。该播放器的最大难点就是能自动播放VCD,当把光盘放进去后,它就自动读盘并运行。我刚开始曾尝试了很多办法都没成功,如何检测到用户放入光盘和取出光盘呢,后来我才搞明白。原来Windows是通过消息WM_DEVICECHANGE来发送当前CDROM的开关状态。其实现方法如下:
首先要获得用户的光驱盘符,通过GetDriveType函数获取光驱盘符,这个函数返回一个0~6之间的值,依次代表:0-未知盘、1-不存在、2-可移动磁盘、3-固定磁盘、4-网络磁盘、5-CD-ROM、6-内存虚拟盘。因此用一个循环,循环检测A~Z,如果类型为5的话,就获得了用户的光驱盘符。
然后调用WM_DEVICECHANGE消息来发送当前CDROM的开关状态。首先映射WM_DEVICECHANGE消息,当WM_DEVICECHANGE事件出现时,程序再判断该消息的附加消息参数以判断CDROM的事件类型。当一个设备被***并变得可用时,***会发送广播事件DBT_DEVICEARRIVAL,而当一个设备被除去并变得不可用时,***会发送广播事件DBT_DEVICEREMOVECOMPLETE,根据这两种消息可以判断当前的光驱是否是开着的。处理完以上事件之后,检查一下光驱中是否由CDROM碟片,如有才弹出对话框表明光驱已经弹出或成功送入。
另外,VCD碟片的文件都存在于一个Mpegav的目录下,检查到光盘后可以检查该目录,程序将调用函数Search_Directory进行文件的查找。首先依次查找当前目录下的每一个实体(文件或是子目录),如果是某一子目录,则进入该子目录并递归调用函数Search_Dirctory进行查找,查找完毕之后,再返回上一级目录;如果不是子目录而是某一文件,则判断其是否就是我们要查找的文件,如果是则输出其完整的文件路径。这样,通过Search_Directory函数的反复递归调用,就查找到了Mpegav,然后把里面的文件进行播放就可以了。
6.探索浏览器还有一个最强的功能,就是它的广播频道,它不仅是局域网的广播,还可以做成是互联网的广播。在这个广播频道里,您不仅可以向局域网发送图像、声音,还可以发送视频。本广播频道是基于TCP/IP的网络即时消息传送、消息广播、文件传输、图像传输、声音传输、视频传输等功能。
广播频道的实现方法:
(1)图像的广播实现:
由于我们所获得的屏幕图象是位图格式,所以首先必须了解位图格式。
BMP文件(位图文件)的结构:文件头,位图信息头,色彩表,位图阵列
1.文件头
文件头含有位图文件的类型,大小,数据结构等信息
2.位图信息头位图信息头含有DIB(device-independent bitmap)与设备无关位图的大小和颜色格式。
3.色彩表色彩表定义了一个颜色表,用于说明图象中的颜色。它有若干个表项。
4.位图阵列
位图阵列存放图象的所有象素值。当biBitCount=1、4、8时,位图阵列中每个象素的值是该象素颜色在色彩表中的索引序号。象素值与色彩表是紧密相关的,对于同样的一个位图图象,如果色彩表不一样,那位图阵列里的象素值也将不一样。
了解位图格式后,就可以通过UDP向局域网的所有机器发送图像信息了。为什么要采用UDP来发送呢?首先UDP是无连接通信协议,UDP不保证可靠数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据。简单地说,如果一个主机向另外一台主机发送数据,这一数据就会立即发出,而不管另外一台主机是否已准备接收数据。如果另外一台主机收到了数据,它不会确认收到与否。
网卡从网络上接收到目标物理地址对应的所有bit位都为1的数据报时,会收到这条消息并将其上传给驱动程序,网卡的这种工作模式称为广播模式,利用这一特性,UDP(用户数据报协议)还提供了向多个目标地址发送广播数据包的能力。广播数据即数据从一个工作站上发出,只要将数据包的目标物理地址对应的所有bit位都设为1,局域网内的所有工作站网卡都会收到这条消息并将其上传给驱动程序。这一特征适用于无连接协议,因为局域网(LAN)上的所有机器都可获得并处理广播消息。
通用的网络程序都是基于socket套接字的。图像的广播也是基于套接字来实现的:
实现过程如下:
1)加载Winsock库
2)用socket函数产生一个套接字
3)调用bind函数将一个本地地址与新产生的套接字联系在一起,并将这些信息通知下层的网络驱动程序。
4)通过调用setsockopt函数来发送广播信息
5)打开要发送的图像文件
5)调用sendto和recvfrom发送和接收数据包。
6)如果不再使用该socket套接字,调用closesocket关闭该套接字,释放该套接字资源。
7)如果不再使用网络功能,调用WSACleanUp释放WinsockDLL为应用程序分配的资。当通过网络传输位图时,每次按网卡的容量分块传送。直到位图的数据全部发送完毕为止其中图像是分块传送(以网卡的容量为64KB为例),比如一幅200KB的位图文件,其中:
信息头(50KB)
调色板(100KB)
颜色数据块(50KB)第一块传输的内容为50KB字节的信息头和调色板中前14KB的内容。第二块传输的内容为调色板中第15KB-----第78KB的内容。第三块传输的内容为调色板中第78KB-----第100KB的内容和颜色数据块中前42KB的内容。第四块传输的内容为颜色数据块的后8KB
当分块传输完成后,客户端在接收图像的时候,把四块内容按照位图的原样在屏幕上组合,就可以显示图像了
(2)声音的广播实现:
它的实现原理是这样的,先让客户端检测有无播放器,如果没有,就向发送端发送请求,这时发送端,再通过广播方式向没有播放器客户端发送播放器程序声音的广播和图像的广播原理都是一样的,都是基于套接字来实现的,也都是用UDP数据包来发送广播信息的。声音的广播实现方式如下:
1)加载Winsock库
2)用socket函数产生一个套接字
3)调用bind函数将一个本地地址与新产生的套接字联系在一起,并将这些信息通知下层的网络驱动程序
4)通过调用setsockopt函数来发送广播信息
5)打开波形文件
6)检查打开文件是否是声音文件
7)为音频数据分配内存
8)检查音频设备,返回音频输出设备的性能
9)检查音频输出设备是否能播放指定的音频文件
10)调用sendto和recvfrom发送和接收数据包。
11)关闭音频输出设备,释放内存
12)如果不再使用该socket套接字,调用closesocket关闭该套接字,释放资源
13)如果不使用网络功能,调用WSACleanUp释放应用程序分配的资源
(3)视频广播的实现:传输视频最简单的方法就是vfw采集,socket传输。但是这样困难很多,而且数据量也太大比如是640*480的视频窗口,24位图像采样,那么传一怔就得640*480*3个字节这仅仅是图像声音如果是16位采样每秒8000个样,那么2*8000字节所以在网络传输过程中不能按照图像的方式传递。应该是视频‘流’,利用享有的压缩算法,如mpeg4等,还有资源比较少的时候,采用8k的立体声,在带宽好的时候可以采用高保真的声音压缩方法。采集的声音与视频最好分通道传递音频和视频,因为视频少量丢失,一般还看不出来,但音频丢失会让人非常难受。.音频传输时,由于ACM有1秒的限制,直接用会有1秒的滞后,所以要分片传送比较好这个程序主要是用来实现视频捕捉,压缩后通过网络传播的,我在客户端用了ICDraw..()系列api,改为先解压,后显示的方式,即使用了ICDecompress系列api。cap系列函数是用来实现视频压缩的。至于mpeg-4,是用vcm实现(就是ic开头的那些),例如ICOpen(...,mmioFOURCC(′d′,′i′,′v′,′x′),..)就是得到了divx-5压缩算法的句柄,也就是HIC.另外传输过程中要效果好的话:
1、压缩
2、错误补偿
3、带宽适应
4、缓存策略
视频广播的实现方式如下:
1)加载Winsock库
2)用socket函数产生一个套接字
3)调用bind函数将一个本地地址与新产生的套接字联系在一起,并将这些信息通知下层的网络驱动程序
4)通过调用setsockopt函数来发送广播信息
5)初始化VFW库
6)创建捕捉窗口
7)创建视频捕捉窗口
8)对捕获的视频流进行压缩处理
9)调用sendto和recvfrom发送和接收数据包
10)释放相应的视频资源
11)关闭视频捕捉窗口
12)如果不再使用该socket套接字,调用closesocket关闭该套接字,释放该套接字资源
13)如果不再使用网络功能,调用WSACleanUp释放Winsock DLL为应用程序分配的资源
Claims (1)
- 探索浏览器是一种多视窗浏览器工具,它作为应用程序结合计算机一起使用。除了提供一般浏览器的功能外,还增加了许多特色功能。此发明请求保护的权利为多视窗浏览功能,即浏览器的主界面除了标准的主窗口外,还另设有多个小窗口分别作为固定频道、浏览频道、娱乐频道和广播频道的主窗口,可同时进行网上浏览、音频视频节目欣赏、办公、播打网络电话、发送音频视频广播等。通过鼠标点击不同的窗口频道,可方便的实现频道的转换,频道窗口的放大和缩小(复原),使用者无需频繁的开启和关闭(隐藏)程序,完全可以在探索浏览器里实现,极大程度的方便了使用者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA021234892A CN1466076A (zh) | 2002-07-02 | 2002-07-02 | 探索浏览器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA021234892A CN1466076A (zh) | 2002-07-02 | 2002-07-02 | 探索浏览器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1466076A true CN1466076A (zh) | 2004-01-07 |
Family
ID=34142344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA021234892A Pending CN1466076A (zh) | 2002-07-02 | 2002-07-02 | 探索浏览器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1466076A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1752979B (zh) * | 2004-09-23 | 2010-06-23 | 捷讯研究有限公司 | 网络浏览器图形用户界面及其实现方法 |
CN101390103B (zh) * | 2006-02-28 | 2010-11-03 | 微软公司 | 可定制的服务提供方用户界面 |
CN101055586B (zh) * | 2006-04-11 | 2011-07-20 | 国际商业机器公司 | 用于选择性地启用小窗口的方法及用于显示Web内容的*** |
CN101167122B (zh) * | 2005-04-29 | 2012-09-12 | 微软公司 | 程序窗口的显示方法 |
CN102843369A (zh) * | 2012-08-24 | 2012-12-26 | 广东宇天科技有限公司 | Ui界面的网络访问方法和*** |
CN103116503A (zh) * | 2011-11-17 | 2013-05-22 | 华为软件技术有限公司 | 一种多窗口的实现方法及装置 |
CN103168301A (zh) * | 2010-08-10 | 2013-06-19 | 谷歌公司 | 向Web应用透露资源能力 |
CN103197836A (zh) * | 2013-03-15 | 2013-07-10 | 北京小米科技有限责任公司 | 一种多媒体信息的交互方法、装置及*** |
-
2002
- 2002-07-02 CN CNA021234892A patent/CN1466076A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1752979B (zh) * | 2004-09-23 | 2010-06-23 | 捷讯研究有限公司 | 网络浏览器图形用户界面及其实现方法 |
CN101167122B (zh) * | 2005-04-29 | 2012-09-12 | 微软公司 | 程序窗口的显示方法 |
CN101390103B (zh) * | 2006-02-28 | 2010-11-03 | 微软公司 | 可定制的服务提供方用户界面 |
CN101055586B (zh) * | 2006-04-11 | 2011-07-20 | 国际商业机器公司 | 用于选择性地启用小窗口的方法及用于显示Web内容的*** |
CN103168301A (zh) * | 2010-08-10 | 2013-06-19 | 谷歌公司 | 向Web应用透露资源能力 |
CN103116503A (zh) * | 2011-11-17 | 2013-05-22 | 华为软件技术有限公司 | 一种多窗口的实现方法及装置 |
CN103116503B (zh) * | 2011-11-17 | 2016-12-07 | 华为软件技术有限公司 | 一种多窗口的实现方法及装置 |
CN102843369A (zh) * | 2012-08-24 | 2012-12-26 | 广东宇天科技有限公司 | Ui界面的网络访问方法和*** |
CN103197836A (zh) * | 2013-03-15 | 2013-07-10 | 北京小米科技有限责任公司 | 一种多媒体信息的交互方法、装置及*** |
WO2014139257A1 (zh) * | 2013-03-15 | 2014-09-18 | 小米科技有限责任公司 | 一种多媒体信息的交互方法、装置及*** |
CN103197836B (zh) * | 2013-03-15 | 2016-07-06 | 小米科技有限责任公司 | 一种多媒体信息的交互方法、装置及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102439578B (zh) | 动态可变速率媒体传送*** | |
CN1238800C (zh) | 因特网卷积音频/视频服务器 | |
CN106658115A (zh) | 一种视频播放方法及移动终端 | |
US7751683B1 (en) | Scene change marking for thumbnail extraction | |
CN106780685B (zh) | 一种动态图片的生成方法及终端 | |
CN112291627A (zh) | 一种视频编辑方法、装置、移动终端和存储介质 | |
KR20050087877A (ko) | 디지털 비디오 컨텐트의 대화방식 네트워크 공유를 위한방법 및 장치 | |
CN101031028A (zh) | 一种支持多用户同时使用的机顶盒装置 | |
CN1491380A (zh) | 后台视频播放机 ,使用其在后台屏幕上处理运动图像的方法 ,以及用于存储执行二者之一的程序的计算机可读存储介质 | |
CN1893572A (zh) | 一种应用于网络电视机顶盒的嵌入式媒体播放器 | |
CN108337553A (zh) | 一种多媒体数据预下载方法 | |
CN1466076A (zh) | 探索浏览器 | |
CN106961421A (zh) | 一种Android***服务端、远程桌面音频重定向方法及*** | |
WO2023030099A1 (zh) | 跨设备交互的方法、装置、投屏***及终端 | |
WO2019192481A1 (zh) | 媒体信息处理方法、相关设备及计算机存储介质 | |
CN1921610A (zh) | 基于客户端的视频流互动处理方法及处理*** | |
CN107071541A (zh) | 用于***上下文管理的方法和设备 | |
WO2008033649A1 (en) | Adding video effects for video enabled applications | |
CN111464864B (zh) | 倒序视频获取方法、装置、电子设备以及存储介质 | |
CN103096170B (zh) | 一种分布式的流媒体直播频道管理方法 | |
CN105915985A (zh) | 一种直播中进行回看的方法及装置 | |
CN1556609A (zh) | 移动机器人网络化控制平台装置 | |
KR20160015123A (ko) | 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
CN1178144C (zh) | 一种在客户机上同步显示主机显示内容的方法及其装置 | |
CN105791964B (zh) | 跨平台的媒体文件播放方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |