当前位置:编程学习 > wap >>

我现在在WINCE下用PlaySound方面播放声音,但声音总出不来,不知道什么原因?

我现在在WINCE下用PlaySound方面播放声音,但声音总出不来,不知道什么原因?

PlaySound (TEXT("soundd.wav"),NULL, SND_FILENAME | SND_NODEFAULT) ; 

soundd.wav 文件在根目录下 --------------------编程问答-------------------- 你用什么平台开发? 

用2005的话 可以直接 

插入sipper(有可能拼错)标准例子

另外 也许需要制定具体路径

得到目录 在 标准 sipper 里面也有



--------------------编程问答-------------------- 我用的是VS2005 

希望能说的在具体一点...........

谢谢!! --------------------编程问答-------------------- 我刚刚有亲自调试过,这样播放wave文件是没有问题的
不过还是建议加上绝对路径
我认为之所以声音不出来有2点可能
1. 你的那个wave文件不是纯正的,PlaySound 识别不了
2. 你的设备声音没打开或太小了你没听见:)

我是用VS2005
mobile5.0
PPC2003SDK
调试的 --------------------编程问答-------------------- 我用的是Smartphone 


加绝对路径的格式应该是什么呢? --------------------编程问答-------------------- 绝对路径
\\test.wav
\\test folder\\test.wav
--------------------编程问答-------------------- 依然没声................... --------------------编程问答-------------------- 好象文件没找到........... --------------------编程问答-------------------- 你把声音文件作为资源嵌入程序,然后用SND_RESOURCE调用看看 --------------------编程问答-------------------- 你换个声音文件看看 --------------------编程问答-------------------- 试了....依然不好用.....希望大家帮我在想想是哪出的问题了.

谢谢!!! --------------------编程问答-------------------- 我今天刚刚用了 playsound,没问题,有声音的。

PlaySound (L"\\Windows\\ShutterSound.wav", NULL, SND_SYNC);

试试你的路径有没有错,在根目录,要   L"\\ShutterSound.wav"  前面那2个\,不能少的 --------------------编程问答-------------------- PlaySound (L"\\Windows\\ShutterSound.wav", NULL, SND_SYNC);


这样写编译时出错,PlaySound (TEXT("\\soundd.wav"),NULL, SND_SYNC | SND_FILENAME | SND_NODEFAULT) ;只能这样写!

但声音依然没有。。。。。。。。

写的时候还需要引类库?或是别的?

希望大家帮我想想哪些东西需要注意! 

谢谢! --------------------编程问答-------------------- 小顶一下,问题没解决,希望大家帮我想想办法 --------------------编程问答-------------------- .........没人帮我??? --------------------编程问答-------------------- 我昨天刚写了一个同样的例子
            string sPath=System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);

            MobilePlaySound(sPath+"\\276.mp3", IntPtr.Zero, (int)(Flags.SND_ASYNC | Flags.SND_FILENAME));
上面那个路径放在和程序同一级目录下.

我的是用.NET写的..但根你那个是大同小异啊..

有一点要注意的看起来是一样的WAV文件,有些可以在手机上播放,有些是不可以的..这个我前几天也怎么写都播放不了,,用手机直接打开那个文件一试,原来在手机上播放不了,但在电脑上又能播放,后来换了一个QQ的玲声就能播放了..

现在正在试怎么播放MP3,,知道的教我一下呢.. --------------------编程问答-------------------- PlaySound("/soundd.wav", IntPtr.Zero, (int)(SND_FILENAME | SND_SYNC));
试试 --------------------编程问答-------------------- 呵呵。
--------------------编程问答-------------------- 估计是文件格式问题,你的wav不是能mpeg3制式 --------------------编程问答-------------------- PlaySound(TEXT("\\windows\\soundd.wav"),NULL, SND_SYNC | SND_FILENAME );
把soundd.wav放到windows目录下 --------------------编程问答-------------------- 先直接单击播放一下 soundd.wav,看看能不能放出来 --------------------编程问答-------------------- 用Getlasterror 看一下提示的是什么原因
另外告诉大家你的硬件和软件平台 --------------------编程问答-------------------- 可以试用一下ECDS-MUI产品,已被多家公司拟为商用开发工具,正在开发的软件中还包括一款是为NOKIA内置应用程序,具体可以到CSDN下载,或上www.ecds-mui.com下载最新版。CSDN下载地址:http://download.csdn.net/source/180559 --------------------编程问答-------------------- 用音频软件处理一下,以单声道输出,再试试。 --------------------编程问答-------------------- Mark~~ --------------------编程问答-------------------- #region 播放声音
        private const UInt32 SND_SYNC = 0x00000000;
        private const UInt32 SND_ASYNC = 0x00000001;
        private const UInt32 SND_NODEFAULT = 0x00000002;
        private const UInt32 SND_MEMORY = 0x00000004;
        private const UInt32 SND_LOOP = 0x00000008;
        private const UInt32 SND_NOSTOP = 0x00000010;
        private const UInt32 SND_NOWAIT = 0x00002000;
        private const UInt32 SND_ALIAS = 0x00010000;
        private const UInt32 SND_FILENAME = 0x00020000;
        private const UInt32 SND_RESOURCE = 0x00040004;
        [DllImport("coredll.dll",
            CallingConvention = CallingConvention.Winapi,
            CharSet = CharSet.Unicode,
            EntryPoint = "PlaySound",
            PreserveSig = true,
            SetLastError = false)]
        private extern static bool PlaySound(
            String pszSound,
            IntPtr hmod,
            UInt32 fdwSound);
        #endregion
PlaySound(声音文件路径, IntPtr.Zero, SND_ASYNC | SND_FILENAME); --------------------编程问答-------------------- 呵呵,PlaySound这个函数对有些wav文件不支持,我查看过,好像是wav的格式不一样。建议换个wav文件试试,或者换个其它方法播放。waveout的api也不错的。要不能利用windows media player 的api最好了。mp3都能播放。 --------------------编程问答-------------------- 你的函数中路径应设置:
PlaySound   ("\\windows\\sound.wav "),NULL,   SND_FILENAME   |   SND_NODEFAULT)   ;

这里用的路径是 绝对路径,也就是你的移动设备或模拟设备的根路径下的windows目录,其下的sound.wav文件存在.
而且 sound.wav 必须是该设备支持的格式  
--------------------编程问答-------------------- 这个问题应该是与硬件相关的。PlaySound在大部分设备上都是支持并且能够播放声音。但有的设备上不支持,比如我这几天碰到的一个设备就是这样。修改成采用waveout系列函数实现后就可以播放了。因此建议你改成waveout系列函数实现看看。如果还不行,就只有可能是设备的扬声器有问题了。 --------------------编程问答-------------------- 应该是文件过大。
改用MP3格式
http://blog.csdn.net/soft2buy/article/details/7065308
--------------------编程问答-------------------- 1先确定是不是驱动问题。
2在换一个文件使一下 --------------------编程问答-------------------- 该函数我用过,是不是你的设备根本就播放不出来声音啊,拷贝一个播放器程序,播放你的那个WAV文件看看能不能正常播放出声音,如果设备有问题,或者你的系统移植有问题,那么肯定是播放不出来的。 --------------------编程问答-------------------- 你要抓住你出错的重点,别人可以播说明这个API是没有问题的,所以你要找你自己的原因:
1、更换文件
2、是否播放了你没有听见
3、直接用系统的player播放一下你的文件 --------------------编程问答-------------------- 这个方法没有问题...刚用过的 首先一点确定路径 给路径在调用时写入文本 如果没声音就看下文本上的路径是不是对的 如果路径对的 只能说你文件格式不正确 可能是直接改后缀的吧 格式是别的! 本身这个方法就是让你放自己的路径文件 
补充:移动开发 ,  Windows Phone
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,