gpt4 book ai didi

flash - 如何将 BitmapData.draw 与 NetStream.appendBytes 一起使用?

转载 作者:行者123 更新时间:2023-12-04 08:56:03 27 4
gpt4 key购买 nike

我正在使用 NetStream.appendBytes() 在 Adobe AIR 中播放本地视频(不涉及服务器) .我想用 BitmapData.draw()拍摄视频输出的照片,但出现此错误:

Error #2123: Security sandbox violation: BitmapData.draw: cannot access null. No policy files granted access.



下面是一些示例代码:
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);

_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;
}
}
}

这只是用于解释的示例代码。在播放视频时调用 getImage 方法时会发生错误。该错误提到未找到策略文件。由于文件是在本地加载的,因此实际上没有放置策略文件的地方。是否有需要设置的策略设置或者是 BitmapData.draw使用时功能不可用 appendBytes ?

最佳答案

我认为另一种解决方案是使用 _ns.play(path)并且不使用 _ns.appendBytes() .

关于flash - 如何将 BitmapData.draw 与 NetStream.appendBytes 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5607047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com