Skip to main content
 首页 » 编程设计

c#之如何为 WriteableBitmap 禁用 silverlight 跨域内容保护

2024年01月25日31artech

我在 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); 
}