- 浏览: 254386 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (91)
- hibernate (6)
- javaScript (9)
- flex (18)
- linux (3)
- vc (2)
- vs (0)
- arcgis (4)
- java (11)
- eclipse (5)
- php (3)
- arcgissde (3)
- arcgis server (5)
- myeclipse (1)
- spring (7)
- junit (1)
- ehcache (2)
- svn (2)
- SQL (7)
- webService (1)
- http://code.svnspot.com/ (0)
- spring security3 (8)
- maven (3)
- struts (2)
- tomcat (4)
- apache (1)
- vmware (0)
- mysql (2)
- android (2)
- jms (0)
- dbvisulizer (1)
- 百度地图 (2)
- openlayers (1)
最新评论
-
jobsccnu:
非常感谢,到处找这个代码呢
flex导出图片 -
li1045460568:
...
HibernateDao.java -
li1045460568:
[flash=200,200][flash=200,200][ ...
HibernateDao.java -
zz210891470:
会报这个错啊Exception in thread " ...
cxf webService简单例子 -
jie66989:
主要就是这个类了,这是前段时间学习的时候用的一部分,那个时候只 ...
HibernateDao.java
http://m.baidu.com/from=844b/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1001%2Cta%40iphone_2_2.3_3_533/baiduid=8C74EDB0B1E602333F5F1F221C0F50E7/w=0_10_fms%E5%AE%89%E5%85%A8%E6%B2%99%E7%AE%B1%E5%86%B2%E7%AA%81+%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AE127.0.0.1%3A1935%2Flive/t=iphone/l=3/tc?ref=www_iphone&lid=6167310246681768063&order=1&vit=osres&tj=www_normal_1_0_10&m=8&srd=1&cltj=cloud_title&dict=20&sec=38358&di=60178f57a3782bbb&bdenc=1&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_ytK1DK6mlrte4viZQRASjbuL9iNH5H5wXD0sqdUgiPzRiBzzBAxrqxpsH9hbX8cgPq3gxCLHqIPhwViOwKWFiowz3C
解决ActionScript对FMS视频拍照的安全沙箱2123问题最近在做一个在线视频的网站,采用了FMS+ASP的架构,FMS负责视频流的广播,ASP页面通过加载一个播放器jwplayer实现对FMS所广播视频流的播放,这也是很多的视频网站采用模式,不再赘述,只表扬一下jwplayer播放器,相当的好用!网站有一个功能,需要在用户端实现对当前播放视频的截图,而客户又不允许使用类似QQ截图似的那种插件,要求通过flash播放器来实现,无奈,只好往深里去探究一下播放器了。通过一顿阅读源代码和查找相关资料,确定了通过给我们的jwplayer播放器写插件的方式来实现这个功能(其实这个插件还实现了好多其他功能:比如双击全屏、自动跳过预先设置的某几个时间段等)的方式,写jwplayer插件的相关知识可以在网上找到,也不再多说。进入正题:jwplayer使用的是flash的ActionScript语言,通过阅读相关API,发现了可以使用BitmapData类的draw方法来实现截图,然后通过JpegEncoder类来进行编码即可生成jpg图片数据,但flash存在一个安全问题,即通过这种方法在客户端生成的图片数据,是不能通过FileReference的save方法直接保存在用户本地的(又是flash的安全设置,蛋疼),需要将这些数据发送到后台,由后台来生成图片,如果用户需要使用这些图片的话,还需要想办法让用户进行下载。截图功能相关代码:1.引入包:import com.adobe.images.JPGEncoder;//jpg编码类import flash.display.*;//BitmapData类2.截图private var bitmap:BitmapData;private var encoder:JPGEncoder;bitmap = new BitmapData(width, height,false,0x000000);var req:URLRequest = new URLRequest('http://localhost:41921/Util/Clip');//处理图片数据的ASP控制器req.method = URLRequestMethod.POST;try{bitmap.draw(videoObject());//截图req.requestHeaders.push(new URLRequestHeader("Content-type","application/octet-stream"));req.data = encoder.encode(bitmap);loader.load(req);}catch(err:SecurityError){}代码中的loader用于向后台以流的形式发送图片数据,后台的保存方法如下:相关包:using System.IO;using System.Drawing.Imaging;保存图片代码:public void Clip(){int length = Request.TotalBytes;byte[] values = new byte[length];values = Request.BinaryRead(length);string imageName = "/Resources/Images/" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg";FileStream fs = new FileStream(Server.MapPath(imageName), FileMode.Create, FileAccess.Write);BinaryWriter bw = new BinaryWriter(fs);bw.Write(values);bw.Close();fs.Close();}如果一切都能顺利运行的话,就不用写这篇文章了,在 bitmap.draw(videoObject()); 这句运行的时候往往会产生“安全沙箱Error #2123错误”,这个错误说明出现了安全沙箱问题,相关说明:如果BitmapData的draw方法的对象和其所有子对象(如果是 Sprite 或 MovieClip 对象)与调用方不来自同一个域,或者不在调用方可通过调用 Security.allowDomain()方法访问的内容中,则调用 draw()将引发 SecurityError 异常。这说明所draw的视频对象和当前调用draw方法的这个swf(即jwplayer)不在同一个域内,所以出现了安全沙箱问题。因为jwplayer播放器所播放的视频来自FMS的rtmp流,而jwplayer及其所加载的插件(swf文件)在用户本地,可不是不在一个域内吗?找了下网上的资料,好多人都遇到了这个问题,却没有解决的办法,这里提出一个可行的办法:通过查找FMS、ActionScript的相关资料,发现“对于BitmapData的draw方法,在 Flash Player 9.0.115.0 及更高版本和 Adobe AIR 中,通过 RTMP 支持此方法。在 Flash Media Server 上,可以在服务器端脚本中控制对流的访问。…通过设置Client.audioSampleAccess 和 Client.videoSampleAccess 属性(,可以赋予用户端操作视频流的权限)。”理论总是让人不容易理解,结合本人的例子来说明:我的网站中,客户端所播放的视频来源都是FMS中的某一个application,比如:直播的话视频源为:rtmp://localhost:1935/live 点播的话视频源为:rtmp://localhost:1935/vod 其中的live和vod就是FMS服务器中的application,即用于提供某种视频服务的FMS服务器端ActionScript程序。当用户在打开视频的时候,播放器会根据视频的源(比如:rtmp://localhost: 1935/vod/a.flv)中的vod去连接FMS服务端的vod应用(位于 “FMS安装路径/ applications”文件夹下,相应的还有live应用),然后连接vod应用,并向其请求播放某个视频流,vod应用处理用户的连接请求和视频播放请求,并将相应的视频流推给客户端。我们要做的,就是在vod应用的onConnect处理方法中,为客户端赋予操作视频流的权限,正常来说,类似vod这种应用的文件夹下会有一个main.as文件(服务器端ActionScript程序),这个文件可以进行编辑,但有时候也会是一个main.far文件,这个就不好编辑了,没关系,在 FMS安装路径下,找到“samples\applications\vod”文件夹,将其中的main.asc文件复制到 FMS安装路径下的 “applications\vod”文件夹下,然后删除main.far文件,打开这个main.asc文件,找到其中的application.onConnect方法,然后找到//p_client.audioSampleAccess = "/";//p_client.videoSampleAccess = "/";两句代码,它们上边应该还有注释说明… 哈,其实FMS开发人员早就给我们考虑到这个功能了,只不过给注释掉了,好了,现在取消这两句的注释:即改为:p_client.audioSampleAccess = "/";p_client.videoSampleAccess = "/";然后重启FMS服务,再次在客户端使用截图功能,好了!客户端提示:截好并保存在服务器端的图片:注:本文所述方法只在基于FMS的rtmp视频流中应用成功,对于不使用FMS,播放本地视频的应用场景没有进行测试,但貌似那种方式不会存在安全沙箱问题,如有朋友需要进一步讨论,可以加QQ:563084310
解决ActionScript对FMS视频拍照的安全沙箱2123问题最近在做一个在线视频的网站,采用了FMS+ASP的架构,FMS负责视频流的广播,ASP页面通过加载一个播放器jwplayer实现对FMS所广播视频流的播放,这也是很多的视频网站采用模式,不再赘述,只表扬一下jwplayer播放器,相当的好用!网站有一个功能,需要在用户端实现对当前播放视频的截图,而客户又不允许使用类似QQ截图似的那种插件,要求通过flash播放器来实现,无奈,只好往深里去探究一下播放器了。通过一顿阅读源代码和查找相关资料,确定了通过给我们的jwplayer播放器写插件的方式来实现这个功能(其实这个插件还实现了好多其他功能:比如双击全屏、自动跳过预先设置的某几个时间段等)的方式,写jwplayer插件的相关知识可以在网上找到,也不再多说。进入正题:jwplayer使用的是flash的ActionScript语言,通过阅读相关API,发现了可以使用BitmapData类的draw方法来实现截图,然后通过JpegEncoder类来进行编码即可生成jpg图片数据,但flash存在一个安全问题,即通过这种方法在客户端生成的图片数据,是不能通过FileReference的save方法直接保存在用户本地的(又是flash的安全设置,蛋疼),需要将这些数据发送到后台,由后台来生成图片,如果用户需要使用这些图片的话,还需要想办法让用户进行下载。截图功能相关代码:1.引入包:import com.adobe.images.JPGEncoder;//jpg编码类import flash.display.*;//BitmapData类2.截图private var bitmap:BitmapData;private var encoder:JPGEncoder;bitmap = new BitmapData(width, height,false,0x000000);var req:URLRequest = new URLRequest('http://localhost:41921/Util/Clip');//处理图片数据的ASP控制器req.method = URLRequestMethod.POST;try{bitmap.draw(videoObject());//截图req.requestHeaders.push(new URLRequestHeader("Content-type","application/octet-stream"));req.data = encoder.encode(bitmap);loader.load(req);}catch(err:SecurityError){}代码中的loader用于向后台以流的形式发送图片数据,后台的保存方法如下:相关包:using System.IO;using System.Drawing.Imaging;保存图片代码:public void Clip(){int length = Request.TotalBytes;byte[] values = new byte[length];values = Request.BinaryRead(length);string imageName = "/Resources/Images/" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg";FileStream fs = new FileStream(Server.MapPath(imageName), FileMode.Create, FileAccess.Write);BinaryWriter bw = new BinaryWriter(fs);bw.Write(values);bw.Close();fs.Close();}如果一切都能顺利运行的话,就不用写这篇文章了,在 bitmap.draw(videoObject()); 这句运行的时候往往会产生“安全沙箱Error #2123错误”,这个错误说明出现了安全沙箱问题,相关说明:如果BitmapData的draw方法的对象和其所有子对象(如果是 Sprite 或 MovieClip 对象)与调用方不来自同一个域,或者不在调用方可通过调用 Security.allowDomain()方法访问的内容中,则调用 draw()将引发 SecurityError 异常。这说明所draw的视频对象和当前调用draw方法的这个swf(即jwplayer)不在同一个域内,所以出现了安全沙箱问题。因为jwplayer播放器所播放的视频来自FMS的rtmp流,而jwplayer及其所加载的插件(swf文件)在用户本地,可不是不在一个域内吗?找了下网上的资料,好多人都遇到了这个问题,却没有解决的办法,这里提出一个可行的办法:通过查找FMS、ActionScript的相关资料,发现“对于BitmapData的draw方法,在 Flash Player 9.0.115.0 及更高版本和 Adobe AIR 中,通过 RTMP 支持此方法。在 Flash Media Server 上,可以在服务器端脚本中控制对流的访问。…通过设置Client.audioSampleAccess 和 Client.videoSampleAccess 属性(,可以赋予用户端操作视频流的权限)。”理论总是让人不容易理解,结合本人的例子来说明:我的网站中,客户端所播放的视频来源都是FMS中的某一个application,比如:直播的话视频源为:rtmp://localhost:1935/live 点播的话视频源为:rtmp://localhost:1935/vod 其中的live和vod就是FMS服务器中的application,即用于提供某种视频服务的FMS服务器端ActionScript程序。当用户在打开视频的时候,播放器会根据视频的源(比如:rtmp://localhost: 1935/vod/a.flv)中的vod去连接FMS服务端的vod应用(位于 “FMS安装路径/ applications”文件夹下,相应的还有live应用),然后连接vod应用,并向其请求播放某个视频流,vod应用处理用户的连接请求和视频播放请求,并将相应的视频流推给客户端。我们要做的,就是在vod应用的onConnect处理方法中,为客户端赋予操作视频流的权限,正常来说,类似vod这种应用的文件夹下会有一个main.as文件(服务器端ActionScript程序),这个文件可以进行编辑,但有时候也会是一个main.far文件,这个就不好编辑了,没关系,在 FMS安装路径下,找到“samples\applications\vod”文件夹,将其中的main.asc文件复制到 FMS安装路径下的 “applications\vod”文件夹下,然后删除main.far文件,打开这个main.asc文件,找到其中的application.onConnect方法,然后找到//p_client.audioSampleAccess = "/";//p_client.videoSampleAccess = "/";两句代码,它们上边应该还有注释说明… 哈,其实FMS开发人员早就给我们考虑到这个功能了,只不过给注释掉了,好了,现在取消这两句的注释:即改为:p_client.audioSampleAccess = "/";p_client.videoSampleAccess = "/";然后重启FMS服务,再次在客户端使用截图功能,好了!客户端提示:截好并保存在服务器端的图片:注:本文所述方法只在基于FMS的rtmp视频流中应用成功,对于不使用FMS,播放本地视频的应用场景没有进行测试,但貌似那种方式不会存在安全沙箱问题,如有朋友需要进一步讨论,可以加QQ:563084310
发表评论
-
adobe flash player无法安装,一直提示不是最新版本
2014-03-22 17:09 1107打开运行中输入regedit,在注册表中找到 HKEY_L ... -
flex导出图片
2013-05-08 20:32 1124flex导出图片功能通常是: 思路1:客户端将UICompo ... -
flex从指定显示组建导出图片
2013-04-14 22:17 2922http://blog.chinaunix.net/uid-8 ... -
datagrid添加checkbox
2012-12-26 15:03 4320参考地址:http://www.flexbj.com/post ... -
flex图片背景平铺
2012-12-26 11:06 1917<mx:Image width="100%&q ... -
AIR 配置文件(*-app.xml)说明
2012-12-22 11:52 1080原文地址:http://blog.163.com/eillit ... -
FLEX里图片绕中心旋转
2012-12-21 14:51 2308原文地址:http://rss.9ria.com/?p=199 ... -
flex loadxml
2012-12-07 10:40 1121package { import flash.eve ... -
flex学习笔记-DataGrid,ComboBox AppEvent EventBus
2012-12-07 10:36 1550事件:父页面添加监听子页面触发这个时候需要设置监听的第三个参数 ... -
flex HTTPService应用
2012-12-07 10:25 3062flex和spring security搭建的时候遇到一个问题 ... -
flex学习笔记-布局
2012-12-07 10:14 4977flex中设置图片平铺 <mx:Image source ... -
spring mvc传值(json格式)
2012-11-28 14:30 6907java端: spring-servlet.xml中的部分配置 ... -
Flex获取客户端IP地址(Java)
2012-07-17 09:44 4353Flex获取客户端IP地址(Java) 博客分类: Flex ... -
Flex RemoteObject调用java方法报错--发送失败
2012-06-21 19:55 1133Flex RemoteObject调用java方法报错--发送 ... -
flash插件地址
2012-05-29 22:02 987flash插件下载地址: http://helpx.adobe ... -
flex笔记
2012-05-11 17:44 916flex中设置右键菜单的类:ContextMenu和Conte ... -
flex4破解
2012-04-25 20:53 0flex3激活码: 1377-4167-5844-4698-0 ... -
大量Flash Builder 4教程资源汇集
2011-11-28 17:27 2161FlashFlexAdobeColdFusionWordPre ...
相关推荐
在使用ArcGIS API for Flex开发WebGIS应用时,安全沙箱问题是一个重要的考虑因素,它涉及到数据的安全性和应用程序的跨域访问控制。Flex是Adobe Flash平台的一部分,用于创建丰富的互联网应用,而ArcGIS API for ...
### FLEX安全沙箱实用指南 #### 一、引言 在进行FLEX开发时,了解和掌握FLEX的安全沙箱机制对于确保应用程序的安全性至关重要。本文将详细介绍FLEX安全沙箱的相关概念及其应用场景,帮助开发者更好地理解如何在...
Flex安全沙箱问题是一个在开发基于Adobe Flex的应用程序时经常遇到的问题。Flex作为一个富互联网应用程序(RIA)框架,它使用ActionScript和MXML进行编程,而这些代码在运行时受到安全沙箱的限制,以防止恶意行为。...
在Adobe Flash Player升级到9.0.124后,由于安全策略更改,原来Socket或XmlSocket的应用里的http方式加载安全策略的手段不能继续使用。...connectbysocket 是flex客户端 connectbysocket请放在tomcat下试验效果
网上的方法很多,我看了好多,但是就是不管用,我的情况是,在程序没发布时,直接运行没错误,但是当发布时,访问就错了,提示SecurityError: Error #2048: 安全沙箱冲突:http://localhost:8086/index.swf 不能从 ...
Flex安全沙箱是Adobe Flex应用程序在运行时遵循的一套安全机制,旨在保护用户的数据和系统安全。这个概念是在Flex 4之后尤其受到关注,因为当时在Internet Explorer中出现了与安全沙箱相关的挑战。沙箱模型类似于...
【标题】:“源于FLEX中的安全沙箱问题” 【描述】:在FLASH PLAYER中,安全沙箱是一个关键的安全性组件,它将资源逻辑地分组,以限制各个FLASH应用程序能够执行的操作和访问的资源。安全沙箱确保了各应用程序与...
但在实际应用中,由于跨域策略的限制,可能会遇到Error #2048这样的错误提示,这通常意味着存在Flex沙箱安全问题。 #### 二、Error #2048 错误解析 **Error #2048**:此错误代码通常表示Flash Player或Flex应用...
《安全沙箱问题解决》文档可能汇总了一些常见安全沙箱问题及其解决方法,这对于开发者在实践中遇到沙箱限制时具有指导意义。 综上所述,这个压缩包包含的资料详细讲解了ActionScript 3.0的安全沙箱机制、跨域通信...
当我们面临“Java, C#, Delphi 解决 Flash 安全沙箱问题”的场景时,这意味着我们需要在这些编程语言中处理与 Flash 沙箱相关的安全问题,以确保应用程序的安全性和合规性。 首先,让我们深入了解一下 Flash 的安全...
本文将深入探讨如何实现这两种语言间的Socket通信,并解决在Flash Player的安全沙箱问题。 首先,让我们理解什么是Socket通信。Socket是网络编程中的一个概念,它允许两个程序通过TCP/IP协议进行双向通信。在Java中...
在IT行业中,安全沙箱是一种重要的安全机制,尤其在Flash技术中扮演着核心角色。Flash安全沙箱的主要目的是为了限制并隔离运行的Flash内容,防止它们对用户系统造成潜在的危害。下面将详细介绍Flash安全沙箱的基本...
总的来说,这个组件的目的是为了解决AS3应用在与服务器通信时遇到的安全沙箱限制。通过正确配置和使用提供的工具,开发者能够创建跨越沙箱限制的安全通信链路,实现Flash内容的网络功能,同时确保用户系统的安全性。...
在本知识集中,我们将深入探讨AS3(ActionScript 3.0)中的安全沙箱处理,以及如何解决相关问题。 1. **AS3安全沙箱类型** AS3中的安全沙箱主要有三种:`Local with Network`、`Local without Network`和`Remote`...
"克服flex安全沙箱限制的视频像素信息采集存储的方法"是一个关键的技术议题,主要涉及的是如何在受到Adobe Flex安全沙箱限制的环境中有效地获取和存储视频帧的像素数据。Flex是一种基于ActionScript 3的开放源代码...
本篇将详细介绍如何通过“flex本地安全域设置”来解决Flex安全沙箱的问题,以及为何无需到Adobe官网设置全局安全域。 1. **Flex安全沙箱**:Flex应用运行在两种安全沙箱中,分别是“本地trusted”和“网络sandbox”...
在这个“Flex开发实例 用于Flex沙箱的控制”中,我们将深入探讨如何利用Flex技术来管理和控制沙箱环境,以确保在富客户端中的安全运行。 Flex沙箱是Flex应用程序运行时的一个核心组件,它模仿了Adobe Flash Player...
沙箱安全系统是一种先进的网络安全解决方案,旨在检测和防御高级持续性威胁(APT)和其他未知的恶意软件。在研华科技的解决方案中,他们采用了Fortinet的APT防御技术,特别是FortiSandbox,来应对日益复杂的网络威胁...
目录 1.安全沙箱容器 2.EdgeKubernetes 3.安全沙箱容器@edge方案 4.新探索 随着云计算边界不断向边缘...了解安全容器在落地过程中在网络、监控、日志、存储以及 K8s API 兼容等方面遇到的种种困难和挑战以及解决方案。