I have videos stored on an Amazon cloudfront server with a valid clientaccesspolicy.xml to allow cross domain access for the silverlight host URL and the following function did not allow me to take screen shots of the video and manipulate the pixels until it was replaced with with a WebClient download instead (a WebClient honors the cross domain policy files, you can see it being requested in Fiddler, something that the MediaElement.Source function did not even attempt)
Old none working cross domain code
public LoadVideoFromURL(string url)
{
var uri = new Uri(url);
myMediaElement.Source(uri);
}
new working cross domain code
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);
}