游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5329|回复: 5

c#中如何实现wav的播放

[复制链接]

23

主题

112

帖子

870

积分

高级会员

Rank: 4

积分
870
QQ
发表于 2005-4-19 18:46:00 | 显示全部楼层 |阅读模式
    c#中 有像java那样的 playsound() 来播放声音文件的吗??    我没有查到,那位大虾指导一下,怎么利用 c#来播放声音。

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2005-4-19 23:24:00 | 显示全部楼层

Re:c#中如何实现wav的播放

.net 对多媒体支持不好。

要使用dx等来播放声音视频。

29

主题

99

帖子

104

积分

注册会员

Rank: 2

积分
104
发表于 2005-4-20 15:21:00 | 显示全部楼层

Re:c#中如何实现wav的播放

bool OnProvide(byte[] data) {
      try {
        return(ioStream.Read(data,0, data.Length) == data.Length);      
      } catch {
        return(false);
      }

把声音数据填充到data里

1

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2005-5-12 16:53:00 | 显示全部楼层

Re:c#中如何实现wav的播放

当然要用DirectX.DirectSound类

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-5-24 02:37:00 | 显示全部楼层

Re:c#中如何实现wav的播放

不用DriectX.DriectSound也能播放wav文件的,方法为:
具体请参见msdn:
ms-help://MS.MSDNQTR.2003FEB.2052/dv_evtuv/html/etconplayingsounds.htm
介绍的很详细没,主要思路是引入sndPlaySound函数

68

主题

710

帖子

719

积分

高级会员

Rank: 4

积分
719
QQ
发表于 2005-6-16 09:18:00 | 显示全部楼层

Re:c#中如何实现wav的播放

使用 非托管平台函数
[DllImport("winmm.dll", SetLastError=true, CallingConvention=CallingConvention.Winapi)]
                static extern bool PlaySound( string pszSound,
                        IntPtr hMod, SoundFlags sf );

                [Flags]
                        public enum SoundFlags : int
                {
                        SND_SYNC = 0x0000,  /* play synchronously (default) */
                        SND_ASYNC = 0x0001,  /* play asynchronously */
                        SND_NODEFAULT = 0x0002,  /* silence (!default) if sound not found */
                        SND_MEMORY = 0x0004,  /* pszSound points to a memory file */
                        SND_LOOP = 0x0008,  /* loop the sound until next sndPlaySound */
                        SND_NOSTOP = 0x0010,  /* don't stop any currently playing sound */
                        SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
                        SND_ALIAS = 0x00010000, /* name is a registry alias */
                        SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
                        SND_FILENAME = 0x00020000, /* name is file name */
                        SND_RESOURCE = 0x00040004  /* name is resource name or atom */
                }

以后调用这个playsound就可以 播放 wav了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-26 00:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表