Windows Phone7或者SL中加载一个资源的方法

本文介绍如何在 Windows Phone 7 或 Silverlight 中加载并播放 WAV 文件作为资源。通过设置 WAV 文件的构建操作为嵌入资源,并利用 Assembly 的方法获取资源流,最终实现声音效果的播放。

Windows Phone7或者SL中加载一个资源的方法,以加载wav文件为例:首先将wav文件的“Build Action”属性设置为“Embedded Resource”,假设文件名为Speech Off.wav放到项目根目录下:
嵌入资源的名字一般是“Assembly名字.文件夹名.文件名”,如果忘了的话可以用assembly.GetManifestResourceNames()方法获得所有的资源名。使用string asmName = new AssemblyName(Assembly.GetExecutingAssembly().FullName).Name获得当前Assembly的名字,不能用Assembly.GetExecutingAssembly().GetName() 方法取,因为会报错。
string asmName = new AssemblyName(Assembly.GetExecutingAssembly().FullName).Name;
            using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(asmName+".Speech Off.wav"))
            {
                SoundEffect sound = new SoundEffect(ReadFully(stream), 48000, AudioChannels.Mono);
                SoundEffectInstance inst = sound.CreateInstance();
                inst.Play();
            } 
        public static byte[] ReadFully(Stream stream)
        {
            byte[] buffer = new byte[32768];
            using (MemoryStream ms = new MemoryStream())
            {
                while (true)
                {
                    int read = stream.Read(buffer, 0, buffer.Length);
                    if (read <= 0)
                        return ms.ToArray();
                    ms.Write(buffer, 0, read);
                }
            }
        }           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值