the tips: Error #2123: Security sandbox violation: BitmapData.draw: cannot access null. No policy files granted access.
Here is some sample code
package
{
import flash.display.Sprite;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.net.NetStreamAppendBytesAction;
import flash.utils.ByteArray;
import flash.display.BitmapData;
class ByteArrayPlayer extends Sprite
{
private var _ns:NetStream;
private var _nc:NetConnection;
private var _video:Video;
public function playVideo(path:String):void
{
_nc = new NetConnection();
_nc.connect(null);
_ns = new NetStream(_nc);
_ns.checkPolicyFile = true;
_video = new Video();
addChild(_video);
_video.attachNetStream(_ns);
_ns.play(null);
_ns.appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN);
var file:File = new File(path);
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var bytes:ByteArray = new ByteArray();
fileStream.readBytes(bytes);
_ns.appendBytes(bytes);
}
public function getImage(video:Video):BitmapData
{
var bit:BitmapData = new BitmapData(_video.width, _video.height);
bit.draw(_video); //This will cause the error
return bit;
}
}
}
This is only sample code use for an explanation. The error would happen when calling the getImage method while the video is playing.
The error mentions a policy file not found. Since the file is loaded locally there isn't really a place to put a policy file.
Is there a policy setting somewhere that needs to be set or is the BitmapData.draw feature just not available when using appendBytes?
It is a local flv file, not an ramp stream from a server.
you're still crossing a security sandbox. to remedy a local security sandbox issue, adjust your fp settings: http://www.macromedia.com/support/documentation/en/flashplayer/help/se ttings_manager04.html
even time past and flashplayer upgraded,old problem is still old one.
the thing i wanna to do is a open a local video file into my swf app,then play this video,meanwhile,capture the current video frame.
my code is similar with lanphonexm
North America
Europe, Middle East and Africa
Asia Pacific