我在 silverlight 中有一张 Esri map ,我想获取屏幕截图。但是,我面临 writeablebitmap 的跨域内容保护,提示“无法访问像素”。
有什么方法可以禁用它吗?或 silverlight 3 或 4 中的任何其他解决方法?
请您参考如下方法:
我将视频存储在具有有效 clientaccesspolicy.xml 的亚马逊云端服务器上,以允许对 silverlight 主机 URL 进行跨域访问,并且以下功能不允许我拍摄视频的屏幕截图并操作像素,直到它被替换为 WebClient 下载(WebClient 支持跨域策略文件,您可以看到它在 Fiddler 中被请求,MediaElement.Source 函数甚至没有尝试这样做)
旧的无工作跨域代码
public LoadVideoFromURL(string url)
{
var uri = new Uri(url);
myMediaElement.Source(uri);
}
新的工作跨域代码
public LoadVideoFromURL(string url)
{
var uri = new Uri(url);
//Request the video
var videoDownloader = new WebClient();
videoDownloader.OpenReadCompleted += new OpenReadCompletedEventHandler(
(s, args) => myMediaElement.SetSource(args.Result));
videoDownloader.OpenReadAsync(uri);
}
