`
optman
  • 浏览: 44635 次
  • 性别: 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  
你好大神,你这个有比较全的代码吗,这几行代码看着有点抽象啊 谢谢啊!

相关推荐

    右下角播放弹出视频播放窗口

    "视频"代表这是一个与视频播放相关的技术,而“弹出”则强调了它的交互方式,即在用户界面中以弹出窗口的形式显示。 根据压缩包内的文件名称,我们可以推测其包含以下组件: 1. `16sucai_style.css`:这可能是整个...

    网页Flash背投广告和强制弹出窗口代码.rar

    网页Flash背投广告和强制弹出窗口是网络广告设计中的一种常见手法,尤其在早期互联网时代,Flash技术广泛应用于创建动态、吸引人的广告内容。这些技术的运用旨在提高广告的可见性和互动性,从而增加品牌曝光率和用户...

    使用Dreamweaver8在网页中插入Flash视频参考.pdf

    在弹出的“插入Flash视频”对话框中,有两个视频类型供选择:“渐进式下载视频”和“流视频”。前者允许视频在下载过程中就开始播放,而后者则需要Flash Communication Server支持以实现即时流式传输。对于大多数...

    支持视频、图片弹出窗口代码

    在IT行业中,创建一个支持视频、图片弹出窗口的代码是一项常见的需求,它能提供良好的用户体验,让用户在不离开当前页面的情况下查看多媒体内容。标题提到的"支持视频、图片弹出窗口代码"就是针对这种需求的解决方案...

    jQuery 弹出窗口 模式窗口 模式层

    在实际应用中,这些jQuery弹出窗口和模式层插件可以根据项目的具体需求进行选择和定制。例如,如果你需要一个简洁的图片预览功能,firstebox可能是最佳选择;如果你希望创建一个包含复杂表单的模态对话框,那么...

    JQuery弹出窗口小插件ColorBox

    在网页设计中,弹出窗口常常用于展示图片、内容或者进行用户交互,而`jQuery ColorBox`就是这样一个强大的轻量级弹出窗口小插件。它提供了优雅的视觉效果,使得用户体验更加舒适,是前端开发者们常用的工具之一。 #...

    广告特效代码4款(弹出式窗口)DIV+CSS

    4. **多媒体支持**:在弹出窗口中嵌入视频和图片,需要了解如何正确地使用`&lt;video&gt;`和`&lt;img&gt;`标签,以及对Flash的支持。 5. **JavaScript交互**:可能需要用到JavaScript来控制弹出窗口的显示和隐藏,以及与用户的...

    thickBox 基于jquery的超轻量级插件,点击图片、登陆、等类似弹出窗口,

    当用户点击触发元素(如图片或按钮)时,`ThickBox`会将指定的内容(如图片、网页或者视频)嵌入到这个弹出窗口中。它支持多种类型的媒体,包括图片、HTML页面、IFrame、Flash以及YouTube视频等。 二、核心功能 1....

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

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

    30个网页常用FLASH特效源代码打包

    9. 弹出窗口或提示框:用于显示信息、提示或警告,不打断主页面浏览。 10. 图表和统计可视化:用动画形式展示数据,便于理解。 每一份.FLA源代码都是一个学习和借鉴的宝贵资源,开发者可以通过研究这些代码,理解...

    Windows8系统中播放网页视频没声音怎么办?.docx

    在“常规”选项卡中,选择“删除浏览记录”,在弹出的窗口中,确保选中“临时互联网文件”、“历史记录”、“Cookie”和“ActiveX筛选数据”,然后点击“删除”。完成清理后,关闭并重新启动浏览器。 3. **重置IE...

    教你怎样获取网页中视频的链接地址.pdf

    - 如果遇到弹出窗口大小不可调整,可以尝试最大化窗口或在临时文件夹中寻找源文件。 - 地址不完整时,可以自行添加网站地址前缀,或者通过其他已知可下载的链接作为参考。 2. RealPlayer 流媒体网址获取: 使用 ...

    页面右下角弹出式 视频广告

    页面右下角弹出式视频广告是一种常见的网页广告形式,它在用户浏览页面时,通常在页面的右下角突然出现一个小窗口,展示一段视频内容。这种广告设计旨在吸引用户的注意力,同时尽量不打扰到他们对主要内容的浏览。在...

    浏览器不能自动播放视频提示点击即可启用adobe flash player的解决方法.pdf

    5. 点击“管理例外情况”按钮,然后在弹出的窗口中添加需要启用Flash的特定网站地址,如YouTube等,并设置行为为“允许”。 6. 完成设置后,保存更改。这样,指定的网站可以正常播放Flash内容,而其他网站则不会自动...

    veeqi_flash_10.20

    1. **动态效果**:Flash允许开发者创建丰富的动态效果,如动画过渡、滑动菜单、弹出窗口等,极大地提升了用户体验,使得用户在浏览网页时能更直观地理解和操作导航。 2. **交互性**:Flash组件可以与用户进行交互,...

    某地域风情公司FLASH网页模板

    4. **网页特效**:网页特效是通过编程或预设动画实现的视觉效果,例如滑动菜单、弹出窗口、平滑滚动、3D效果等,可以增强用户浏览体验。 5. **ActionScript**:ActionScript是Flash开发中使用的脚本语言,用于控制...

    flash插件卸载工具

    4. **操作流程**:按照工具的提示进行,不要在卸载过程中关闭任何弹出窗口或中断进程,以免导致卸载不完整。 5. **重启计算机**:完成卸载后,通常需要重启计算机以确保所有更改生效,并清除所有Flash相关内存痕迹...

    教你如何提取网页中的视频音乐歌曲.pdf

    首先,我们需要了解的是,网页上的多媒体内容在播放时通常会被暂时存储在电脑的缓存中。YuanBox 能够有效地搜索这些缓存,帮助用户找到并保存想要的文件,避免了手动寻找的繁琐步骤。 下载并安装YuanBox后,无需...

    第13章多媒体与网页特效.pptx

    插入 Flash 动画的步骤是:打开【插入】面板,单击【常用】选项卡中的【媒体:Flash 】按钮,弹出【选择文件】对话框,选择 Flash 文件,然后单击【确定】按钮将 Flash 文件插入到网页中。插入的 Flash 动画并不会在...

    网站开发常用广告flash脚本(8个很值)

    在描述中提到的8个不同的Flash脚本,可能包括各种类型的广告样式,如滑动横幅、弹出窗口、旋转木马式展示等,每个都有其独特的效果和应用场景。 1. 滑动横幅:这是一种常见的广告形式,通过脚本控制多个广告图片在...

Global site tag (gtag.js) - Google Analytics