`
optman
  • 浏览: 44130 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

如何让网页上的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);
 








分享到:
评论
1 楼 tang07070 2015-04-14  
你好大神,你这个有比较全的代码吗,这几行代码看着有点抽象啊 谢谢啊!

相关推荐

    AJAX弹出动态加载网页和图像的窗口源代码

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

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

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

    JavaScript网页特效范例宝典源码

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

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

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

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

    3.从工具栏弹出窗口中将网站添加或删除到白名单中 4.空框代替实际的闪光灯出现,单击该框将加载闪光灯。注意:为了报告错误,请访问addon的主页(http://mybrowseraddon.com/noflash.html)并填写错误报告表格。 ...

    Flash Block (Plus)-crx插件

    允许您在所有网页中阻止Flash内容(包括横幅,游戏,视频和音乐播放器)。 2.轻松从工具栏弹出窗口打开或关闭分机。 3.从工具栏弹出窗口添加或删除网站。 4.显示空框架代替实际闪光灯,单击框架将加载闪光灯。 注意...

    dreamwear做的书店网页 html

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

    Dreamweaver 扩展

    real_networks 在页面中插入流式播放的Real视频和音频文件 MX131662_pdreloadxtension 从新加载Dreamweaver的各项插件,不用重复的启动关闭Dreamweaver了 DateStamp 插入一个日期,或者网页的最后更新日期 Email ...

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

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

    vb仿sws浏览器网络诊断

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

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

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

    Avant Browser USB版 2013 build 116.zip

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

    Avant Browser 三核版 2013 build 116.zip

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

    彩虹浏览器 v1.81.zip

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

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

    70款经典Dreamweaver插件

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

    Dreamweaver 插件集

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

    彩虹浏览器 v1.74

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

    Dreamweaver常用24种插件

    在网页中插入AVI视频文件,可定制播放面板。 Scrolling Title 类别:Object 文件格式:mxp │ 4,224B 在浏览器标题栏显示滚动的页面标题 Calender Object , 类别:Object , 文件格式:mxp 作用:创建指定...

    Video Maximizer-crx插件

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

Global site tag (gtag.js) - Google Analytics