怎样让MP4文件在silverlight 打开文件里放出来

Silverlight3的7个新功能
Silverlight3的7个新功能
发布时间: 6:11:15
编辑:www.fx114.net
本篇文章主要介绍了"Silverlight3的7个新功能",主要涉及到Silverlight3的7个新功能方面的内容,对于Silverlight3的7个新功能感兴趣的同学可以参考一下。
在刚刚结束的上(Mix是微软面向web开发者和设计者的会议),Silverlight团队的程序经理Joe Stegman介绍了silverlight3的许多让人兴奋的新功能,摘录如下:
1. 支持更多的媒体编码格式
在Silverlight3中新增加的多媒体编码格式包括H.264,AAC,MP4。Silverlight这项技术,从出生以来,就一直把对多媒体,尤其是视频的支持,放在首要位置。这次对更多的编码格式提供支持,方便网站建设者更容易的发布、部署视频资料,只需要如下一行XML:
2. 利用GPU加速
随着显卡计算能力的加强,应用程序把越来越多的图形计算任务从CPU中拿出来交给GPU完成。然而,要利用到GPU,对程序员而言通常意味着更多的编码任务,在Silverlight3中,这个任务的复杂程度被大大简化,只需要在XAML中多加入几行XML代码,就可以轻松享受GPU的超强计算能力,贴一张GPU渲染的效果图:
3. 透视化3D 透视化3D,简单的说,就是把2D对象放到3D空间中去。和传统的3D把一个3D空间的对象投影到2D空间中不同,透视化3D意味着更高的性能,更友好的编程接口,同时能完成我们80%的3D任务。好了,说了那么多,来看一个demo,一行XAML带来的变化:
以上这个例子,稍加扩展,就可以在silverlight3中,在3D空间中旋转一个控件。
4. 自定义特效 在silverlight3中,引入了shader的概念,它是一个像素粒度的操作&&每当silverlight3要显示一个像素的时候,它对shader说:&我要显示这个像素了,你是否要做些处理,实现某些特效?&。我们来看看shader的强大之处:下面一个示例中,左边的图像是背景图像,右边的图像是前景图像,在silverlight3之前,我们尽管可以同时显示这两个图像,但是背景图像会被前景遮住。(当然可以设 置前景的透明度,但是这样整个前景图像的清晰度就下降了)我们在显示前景图像的时候可以应用一个shader:把所有的黑色过滤掉。这样,我们在前景上过滤掉所有黑色背景的同时,还拥有了一个清晰的火焰。
5. 更多的控件支持 每一个新的silverlight版本的发布,都伴随着很多新的控件的问世。这个版本也不例外,新推出的控件有:DockPanel,Expander,Label,TreeView,ViewBox等等。在这里举一个&Save as...&(另存为)控件的例子。可能有的朋友会问,&另存为&作为一个耳熟能详的控件,为什么要等到silverlight3才提供?答案是出于安全性的考虑:silverlight为了保护用户的安全,对本地文件的读写有很大的限制。(否则的话,如果服务器端可以随意读写用户的本地文件,那么就很容易做出一个钓鱼网站了)。silverlight3中,对另存为控件的支持也有着安全性的考虑。开发人员可以创建一个SaveFileDialog实例,但是当用户选定本地文件的时候,他只能得到这个文件的stream,而不是这个文件的路径。这样的设计避免了提供一个打开任意路径的本地文件的功能,从而使silverlight运行在一个更为安全的环境中。
6. 本地消息传递(local messaging) Silverlight是浏览器的一个插件,在同一时间可能会有多个实例。比如多个浏览器同时访问包含silverlight的网页,就会有多个silverlight的实例同时运行,本地消息传递允许这些不同的siliverlight控件实例之间互相通信。
7. 在浏览器外运行silverlight silverlight3支持把一个silverlight页面安装到本地,用户可以像一个桌面程序一样离线使用这个程序,并且可以右键卸载这个程序。
比如下面一个浏览器中运行的国际象棋程序,用户可以在右键菜单中,把它存储为一个本地程序。
然后,就可以像一个普通的桌面程序一样,运行这个程序了。同时,也能在这个桌面程序的右键菜单中卸载这个程序。
更多关于silverlight3的信息,可以在下面这个网站中获得
其中包括工具的开发,第一手学习的资料(博客以及书籍),以及示例程序。
版权声明:本文为博主原创文章,未经博主允许不得转载。
本文标题:
本页链接:Silverlight 实现下载文件功能_.NET教程_编程技术
您的位置: &
& Silverlight 实现下载文件功能
最近一直在做Siverlight的有关的项目,今天做了一个下载功能,也是经过网上找的各种办法才得到以下的结果,我来总结一下。如果哪有不对的或者哪块有错误的还请各位进行指出来!谢谢!
  在sl中的下载,我认为很难做到像c#中的下载。可以弹出一个对话框进行保存或者另存为的样子。
  下面是通过:WebClientDownHandler文件进行的!
using Susing System.Collections.Gusing System.Lusing System.Wusing System.IO;namespace E9.Server{    /// &summary&    /// Summary description for WebClientDownHandler    /// &/summary&    public class WebClientDownHandler : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            String fileName = context.Request.QueryString["fileName"]; //客户端保存的文件名            fileName=HttpUtility.UrlDecode(fileName);            String filePath = context.Server.MapPath("data/" + fileName); //路径            FileInfo fileInfo = new FileInfo(filePath);            if (fileInfo.Exists)            {                byte[] buffer = new byte[102400];                context.Response.Clear();                FileStream iStream = File.OpenRead(filePath);                long dataLengthToRead = iStream.L //获取下载的文件总大小                context.Response.ContentType = "application/octet-stream";                context.Response.AddHeader("Content-Disposition", "  filename=" +                                   HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));                while (dataLengthToRead & 0 && context.Response.IsClientConnected)                {                    int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(102400));//'读取的大小                    context.Response.OutputStream.Write(buffer, 0, lengthRead);                    context.Response.Flush();                    dataLengthToRead = dataLengthToRead - lengthR                }                context.Response.Close();                context.Response.End();            }        }        public bool IsReusable        {            get            {                return             }        }    }}
  当我们新建玩这个类的时候,就可以在你点击下载的按钮那里写事件来调用这个类进行下载文件!但是条件是你的文件是存在固定的一个文件夹中的.只有找到路径才可以下载的。
               private void HyperlinkButton_Click(object sender, RoutedEventArgs e)        {                       string fileaddressofneeded = “1.txt”;//需要下载的文件名字            HyperlinkButton hlbutton = sender as HyperlinkB            var client = new WebClient();                        var u= new Uri(String.Format("{0}//Handler/DownLoadFileHandler.ashx?FileName={1}" ,client.BaseAddress, fileaddressofneeded),UriKind.RelativeOrAbsolute);            hlbutton.NavigateUri = u;        }
  在页面上将你的hyperlinkbutton 的属性设置为:_blank 这样就是弹出另一个界面了,所以这样一个简单的下载就可以了,如果谁有新的办法或者好的方法可以拿出来,让大家参考一下!谢谢!
( 13:03:08)
( 13:04:49)
相关排行总榜1435人阅读
dev_SL_0(20)
&2. 在浏览器中,点击右键,查看页面源代码;
3. 在html源代码中搜索"xap",很快就能定位出xap的位置。&
我们看到&param name="Source" value="clientBin/showcasenav/ShowcaseNav.xap" /&该value就是xap在服务器端的位置。&4. 我们使用同样的域名,来获取当前的xap文件。打开新的浏览器,在地址栏输入:& 这时浏览器会提示你下载该xap文件。
5. 重新命名下载下来的文件ShowcaseNav.xap,为 ShowcaseNav.zip. 然后解压该压缩包到同一个目录. 在目录中,会看到该Silverlight使用的装配单文件,以及类库,和配置文件.
6. 下面可以使用大家都比较熟悉的反编译软件,Reflector来查看DLL中的资源和代码文件。 下载Reflector:
&7. 在Reflector中双击“MsCommunities.Silverlight.ShowcaseNav”,展开文件会看到DLL和Resources,其中Resources中包含这所有的xaml文件和图片文件,DLL中都是类库后台代码。
8. 点击进入Reources目录,双击“MsCommunities.Silverlight.ShowcaseNav.g.resources”,在Reflector右边可以看到资源列表,选中任意一个想查看代码的文件,点击右键“Save As”,保存到本地,即可使用VS2008或者文本编辑软件查看代码内容。
&9. 对应着每个资源文件会有类库代码,双击“MsCommunities.Silverlight.ShowcaseNav.dll”,再双击“MsCommunities.Silverlight.ShowcaseNav”,可以查看各个类库文件,这里,我们选中"ItemAdvanceControl“,在Reflector右边即可看到反编译代码。
&至此,我们已经讲述如何反编译Silverlight项目,查看其源代码,下面我想介绍一款国外的共享软件,也可以达到上面同样的效果 - Silverlight SPY,下载地址:
Silverlight SPY是一款共享软件,该软件可以自动获取XAP文件,帮你解析XAP中的文件,该软件和Reflector配合同样可以查看Silverlight项目源代码。同时,可以分解项目中的样式和UI,以及Isolated Storege展示给开发人员。我们在地址栏输入Silverlight.NET地址,即可得到,双击任何一个资源,在View窗口即可查看。
文章来自学IT网:文章来自学IT网:文章来自学IT网:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:145848次
积分:3524
积分:3524
排名:第7153名
原创:216篇}

我要回帖

更多关于 silverlight 下载文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信