我是新手。在用VS2008开发一个基于移动设备的程序时,将一个WAV的音频文件嵌入到资源中,类型就自动变成了byte[],我想用soundplayer调用时输入SoundPlayer player = new SoundPlayer( Properties.Resources.chaoxian);这样系统就会报错。chaoxian 为音频文件名称。这该怎么办呢?

解决方案 »

  1.   

    new SoundPlayer所需要的参数是什么?文件名吗?
    如果是文件名的话,你可将chaoxian以字节流的方式写入到一个临时文件中,然后将此文件的文件名提供给构造函数。
    如果支持流的话,可以将其写入到一个MemoryStream中,然后将此流传递给构造函数
      

  2.   

    太麻烦了吧。
    或者能帮忙解决一下文件路径的问题也可以。
    我是用VS做移动设备的开发。
    部署好以后,老是提示找不到文件。
    请问我在本机写好文件路径,怎么能保证部署到移动设备上也能找到?
    我本来想嵌入到资源,这样就省事了。我查的是VS 2005上WAV格式文件嵌入资源里面还是WAV格式,SoundPlayer可以直接如上调用,因为格式就是WAV,但在VS2008WAV嵌入以后就成了数组,SoundPlayer调用就不行了,格式错误了!
    难道没有简单点的办法?还是我必须卸了2008装2005?
      

  3.   

    刚才查了一下MSDN,SoundPlayer是有Stream参数的构造函数的,你试试如下代码
    MemoryStream stream = new MemoryStream(Properties.Resources.chaoxian);
    SoundPlayer player = new SoundPlayer(stream);