如何让网页上的Flash视频以弹出窗口播放
很多浏览器都有这个功能,当你把鼠标移动到网页视频上,就可以看到顶部有一个按钮出现,弹出独立播放器。当你点击按钮,视频就弹出在新窗口播放了,这时候视频窗口的大小可以自由调整不再受页面的限制。
这是如何做到的呢?
首先想到的是,浏览器缩放缩放了页面的大小,正好可以显示视频窗口的大小。好像火狐有一个魔镜功能,可以实现网页简报既截取网页任意部分。 要做到这点,浏览器的外框程序必须是自己写的(国内的浏览器都是这样的)。如果浏览器不是自己的,能不能通过BHO来实现呢?
另一个想法是,把页面里视频相关的HTML代码提取出来,然后在一个新页面框架里显示。但是这样的话,就必须对页面代码的结构非常熟悉,而且必须跟随变化。还有,当新视频窗口弹出时,播放进度是不能保持的,必须重头播放。
其实有一个简单的办法,那就是把页面里的Flash控件重新激活到另一个窗口上。因为我们知道,Flash其实是一个ActiveX控件,运行在IE容器里。如果我们创建一个新的Ole Container,就可以把Flash控件激活到新的Container里。这样,Flash控件就可以在保持状态的情况下在不同的容器之间转换,既自由的在页面和弹出窗口中切换。
所以,要弹出(IE)页面里的Flash视频,需要以下几步:
1. 通过Web Browser控件或者BHO,在页面加载完成后得到页面的DOM模型,找到Embed节点对象,即可查到Flash空间。
2. 创建Ole容器,比如ATL的CAxWindow
3. 激活Flash控件到新的Ole容器
代码片段(基于ATL):
//pFlashDisp为Flash控件对象,通过分析页面DOM获得
//保存IE容器,用于恢复
CComQIPtr<IOleObject> spFlashOleObj = pFlashDisp;
spFlashOleObj->GetClientSite(&m_spIESite);
//必选先关闭,才能转移到新的窗口上
spFlashOleObj->DoVerb(OLEIVERB_HIDE, NULL, m_spIESite, 0, NULL, NULL);
spFlashOleObj->Close(OLECLOSE_NOSAVE);
//创建新的Ole容器(ATL的CAxWindow类)
CRect clientRect;
GetClientRect(&clientRect);
m_HostWin.Create(m_hWnd, &clientRect, NULL, WS_CHILD);
CComPtr<IAxWinHostWindow> spHost;
m_HostWin.QueryHost(&spHost);
//使得Flash可以查询到IE提供的IServiceProvider,比如可以打开新的网页
CComQIPtr<IObjectWithSite> spObjWithSite;
m_HostWin.QueryHost(IID_IObjectWithSite, (void**)&spObjWithSite);
spObjWithSite->SetSite(pOuterSite);
//激活到新容器, m_hWnd为m_HostWin的父窗口
spHost->AttachControl(spFlashOleObj, m_hWnd);
分享到:
相关推荐
这是一个非常酷的弹出对话框程序,用于网页设计中,在弹出对话框时,他会让原来的页面以半透明状显示,然后,在同一页面中弹出一个新的对话框,在其中使用AJAX动态加载网页,或者图片等等。包含完整的使用例子和说明...
可能用过激流神探新版人的人都知道,新的版本在技术上没有更新,只是加了一些垃圾文件,在看网页时不停地弹出窗口。而旧版本就不一样,很清澈,很纯洁。 激流神探 在浏览网页的过程中,点击右键即可分析网页中调用...
1.1 弹出窗口控制 2 实例001 打开新窗口显示广告信息 2 实例002 定时打开窗口 4 实例003 通过按钮创建窗口 5 实例004 自动关闭的广告窗口 6 实例005 控制弹出窗口居中显示 7 实例006 弹出的窗口之Cookie控制 9 实例...
此外,您可以从工具栏弹出窗口中将任何网站列入白名单以禁用扩展名。重要功能:1.允许您阻止所有网页中的Flash内容(包括横幅,游戏,视频和音乐播放器) 2.从工具栏弹出窗口轻松打开或关闭扩展名 3.从工具栏弹出...
自己精心做的考试作品。 有8个网页,有背景音乐,广告,滚动新闻,弹出窗口,变换的图片,flash,视频。 有注册页面和登录页面,留言板。
此外,您可以从工具栏弹出窗口中列出任何网站,以禁用扩展名。 重要特点: 1.允许您在所有网页中阻止Flash内容(包括横幅,游戏,视频和音乐播放器)。 2.轻松从工具栏弹出窗口打开或关闭分机。 3.从工具栏弹出窗口...
MX128577_ultimatewindows 建立一个可自定义属性的弹出窗口,亦可建立一个居中的窗口 WordCount 字数统计 PreviousPage 建立返回前一页的超链接 PageTransitions 进入、退出页面的过渡转场效果,比如从中间打开、...
实例241 在弹出的新窗口中选择图片 372 8.6 在页面中播放图片 374 实例242 幻灯片式播放图片 374 实例243 无间断的图片循环滚动效果 376 8.7 图片的其他效果 377 实例244 导航地图 377 8.8 播放音乐 ...
sws浏览器医生的Flash自动修复功能,能自动检测电脑上原有的FlashPlayer插件与系统有无冲突,若有冲突会自动修复,你的电脑将不再会出现浏览器打不开农场、牧场或者餐厅等问题,同时网页游戏和视频播放也将更为流畅...
该扩展程序允许您只能看到页面上的视频。 使用此扩展程序可以最大限度地提高您的视频!...此扩展程序提供了与Hulu的“在新的弹出窗口中打开此视频”功能类似的功能。 支持语言:English (United States)
6.1.8 库面板弹出式菜单 138 6.1.9 内置公用库及外部库的文件 139 6.2 实例的创建与应用 140 6.2.1 课堂案例——制作按钮实例 141 6.2.2 建立实例 143 6.2.3 转换实例的类型 145 6.2.4 替换实例引用的...
让播放器打造更符合您的网站5,全面解决弹出窗口速度慢这个十分让人头痛的问题!此版本全新整合了弹出窗口到播放器内部,让播放器更具有意想不到的表现!!关于喜欢老样式的用户我们也通过选单让您随意在新旧窗口...
一种很酷的可以完全定制的弹出窗口,现在很流行 Flash Image 类别:Object 文件格式:mxp │ 3,913B 响应鼠标事件的图片渐显渐隐效果 Typewriter 类别:Behavior 文件格式:mxp │ 8,247B 让一段文字以打字的...
广告猎手可有效地阻止弹出窗口、各种广告和恶意网页的骚扰,使你的上网体验更加顺畅,同时支持自定义过滤和免过滤列表,对自己的干扰信息一一排除,提高你的上网体验. 5,网页分析 彩虹绿色浏览器提供的网页分析器...
MX128577_ultimatewindows 建立一个可自定义属性的弹出窗口,亦可建立一个居中的窗口 WordCount 字数统计 PreviousPage 建立返回前一页的超链接 PageTransitions 进入、退出页面的过渡转场效果,比如从中间打开、...
弹出窗口(窗口居中、总在最前面、自动关闭、全屏、无边框窗口) averagedistribute 单元格平均分布 Quick_Title 建立文字型的Title说明 Open_Browser_Window+ 操作弹出式窗口升级版 StyleApplier 表格的鼠标触发效果 ...
13.5 制作弹出菜单 256 13.6 网页切片 258 13.7 制作动画 261 本章小结 263 思考题 263 第14章 Flash 8概述 264 14.1 Flash 8的工作环境简介 264 14.1.1 初识Flash 8 264 14.1.2 文档选项卡 265 14.1.3 时间...
4,广告猎手广告猎手可有效地阻止弹出窗口、各种广告和恶意网页的骚扰,使你的上网体验更加顺畅,同时支持自定义过滤和免过滤列表,对自己的干扰信息一一排除,提高你的上网体验。5,网页分析彩虹绿色浏览器提供的...
Avant浏览器的用户友好界面为你浏览体验带来清晰而有效的全新体验,...[修复]确认关闭的窗口弹出2次 [修复]窗口size无法保存 [修复]分离标签置顶的问题 [修复]地址栏上url和Favicon显示的位置问题 [修复]其他小问题
Avant浏览器的用户友好界面为你浏览体验带来清晰而有效的全新体验,...[修复]确认关闭的窗口弹出2次 [修复]窗口size无法保存 [修复]分离标签置顶的问题 [修复]地址栏上url和Favicon显示的位置问题 [修复]其他小问题