`

如何让网页上的Flash视频以弹出窗口播放

阅读更多

如何让网页上的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弹出动态加载网页和图像的窗口源代码

    这是一个非常酷的弹出对话框程序,用于网页设计中,在弹出对话框时,他会让原来的页面以半透明状显示,然后,在同一页面中弹出一个新的对话框,在其中使用AJAX动态加载网页,或者图片等等。包含完整的使用例子和说明...

    激流神探1.02(老版本,我喜欢)

    可能用过激流神探新版人的人都知道,新的版本在技术上没有更新,只是加了一些垃圾文件,在看网页时不停地弹出窗口。而旧版本就不一样,很清澈,很纯洁。 激流神探 在浏览网页的过程中,点击右键即可分析网页中调用...

    JavaScript网页特效范例宝典源码

    1.1 弹出窗口控制 2 实例001 打开新窗口显示广告信息 2 实例002 定时打开窗口 4 实例003 通过按钮创建窗口 5 实例004 自动关闭的广告窗口 6 实例005 控制弹出窗口居中显示 7 实例006 弹出的窗口之Cookie控制 9 实例...

    闪存块(+)「Flash Block (Plus)」-crx插件

    此外,您可以从工具栏弹出窗口中将任何网站列入白名单以禁用扩展名。重要功能:1.允许您阻止所有网页中的Flash内容(包括横幅,游戏,视频和音乐播放器) 2.从工具栏弹出窗口轻松打开或关闭扩展名 3.从工具栏弹出...

    dreamwear做的书店网页 html

    自己精心做的考试作品。 有8个网页,有背景音乐,广告,滚动新闻,弹出窗口,变换的图片,flash,视频。 有注册页面和登录页面,留言板。

    Flash Block (Plus)-crx插件

    此外,您可以从工具栏弹出窗口中列出任何网站,以禁用扩展名。 重要特点: 1.允许您在所有网页中阻止Flash内容(包括横幅,游戏,视频和音乐播放器)。 2.轻松从工具栏弹出窗口打开或关闭分机。 3.从工具栏弹出窗口...

    Dreamweaver 扩展

    MX128577_ultimatewindows 建立一个可自定义属性的弹出窗口,亦可建立一个居中的窗口 WordCount 字数统计 PreviousPage 建立返回前一页的超链接 PageTransitions 进入、退出页面的过渡转场效果,比如从中间打开、...

    javascript网页特效实例大全(8-12)

    实例241 在弹出的新窗口中选择图片 372 8.6 在页面中播放图片 374 实例242 幻灯片式播放图片 374 实例243 无间断的图片循环滚动效果 376 8.7 图片的其他效果 377 实例244 导航地图 377 8.8 播放音乐 ...

    vb仿sws浏览器网络诊断

    sws浏览器医生的Flash自动修复功能,能自动检测电脑上原有的FlashPlayer插件与系统有无冲突,若有冲突会自动修复,你的电脑将不再会出现浏览器打不开农场、牧场或者餐厅等问题,同时网页游戏和视频播放也将更为流畅...

    视频最大化「Video Maximizer」-crx插件

    该扩展程序允许您只能看到页面上的视频。 使用此扩展程序可以最大限度地提高您的视频!...此扩展程序提供了与Hulu的“在新的弹出窗口中打开此视频”功能类似的功能。 支持语言:English (United States)

    Flash CS5实例教程(第2版) 光盘

    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 替换实例引用的...

    《浩海网络多格式播放器》V3.9.4.5

    让播放器打造更符合您的网站5,全面解决弹出窗口速度慢这个十分让人头痛的问题!此版本全新整合了弹出窗口到播放器内部,让播放器更具有意想不到的表现!!关于喜欢老样式的用户我们也通过选单让您随意在新旧窗口...

    Dreamweaver常用24种插件

    一种很酷的可以完全定制的弹出窗口,现在很流行 Flash Image 类别:Object 文件格式:mxp │ 3,913B 响应鼠标事件的图片渐显渐隐效果 Typewriter 类别:Behavior 文件格式:mxp │ 8,247B 让一段文字以打字的...

    彩虹浏览器 v1.81.zip

    广告猎手可有效地阻止弹出窗口、各种广告和恶意网页的骚扰,使你的上网体验更加顺畅,同时支持自定义过滤和免过滤列表,对自己的干扰信息一一排除,提高你的上网体验. 5,网页分析 彩虹绿色浏览器提供的网页分析器...

    70款经典Dreamweaver插件

    MX128577_ultimatewindows 建立一个可自定义属性的弹出窗口,亦可建立一个居中的窗口 WordCount 字数统计 PreviousPage 建立返回前一页的超链接 PageTransitions 进入、退出页面的过渡转场效果,比如从中间打开、...

    Dreamweaver 插件集

    弹出窗口(窗口居中、总在最前面、自动关闭、全屏、无边框窗口) averagedistribute 单元格平均分布 Quick_Title 建立文字型的Title说明 Open_Browser_Window+ 操作弹出式窗口升级版 StyleApplier 表格的鼠标触发效果 ...

    网页与Web程序设计 课件 ppt 机械工业出版社 part1

    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 时间...

    彩虹浏览器 v1.74

    4,广告猎手广告猎手可有效地阻止弹出窗口、各种广告和恶意网页的骚扰,使你的上网体验更加顺畅,同时支持自定义过滤和免过滤列表,对自己的干扰信息一一排除,提高你的上网体验。5,网页分析彩虹绿色浏览器提供的...

    Avant Browser USB版 2013 build 116.zip

    Avant浏览器的用户友好界面为你浏览体验带来清晰而有效的全新体验,...[修复]确认关闭的窗口弹出2次 [修复]窗口size无法保存 [修复]分离标签置顶的问题 [修复]地址栏上url和Favicon显示的位置问题 [修复]其他小问题

    Avant Browser 三核版 2013 build 116.zip

    Avant浏览器的用户友好界面为你浏览体验带来清晰而有效的全新体验,...[修复]确认关闭的窗口弹出2次 [修复]窗口size无法保存 [修复]分离标签置顶的问题 [修复]地址栏上url和Favicon显示的位置问题 [修复]其他小问题

Global site tag (gtag.js) - Google Analytics