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);
}
}
}
Windows Phone7或者SL中加载一个资源的方法
最新推荐文章于 2017-11-14 21:29:00 发布
本文介绍如何在 Windows Phone 7 或 Silverlight 中加载并播放 WAV 文件作为资源。通过设置 WAV 文件的构建操作为嵌入资源,并利用 Assembly 的方法获取资源流,最终实现声音效果的播放。
2376

被折叠的 条评论
为什么被折叠?



