.Net中如何简单地播放wav文件?

主  题:  .Net中如何简单地播放wav文件?
作  者:  shibill ()
等  级:  ^
信 誉 值:  89
所属论坛:  .NET技术 C#
问题点数:  50
回复次数:  10
发表时间:  2003-11-22 18:33:00

.Net中有无简单地播放wav文件的方法,象原来的API函数sndPlaySound?



回复人: ajex(仙桃人在珠海) ( 一星(中级)) 信誉:90 2003-11-22 18:46:33 得分:0

可以考虑直接调用api.

回复人: qiuji(忆秋季) ( 两星(中级)) 信誉:99 2003-11-22 18:49:04 得分:30

using System.Runtime.InteropServices;

[DllImport("winmm.dll")]
public static extern long PlaySound(String fileName,long a,long b);

在需要声音时,添加下面的代码:
PlaySound("soundfile.wav",0,0);

回复人: zoujiaming(笨笨的!) ( 三级(初级)) 信誉:100 2003-11-22 19:10:37 得分:0

http://expert.csdn.net/Expert/TopicView1.asp?id=2314143
方法最简单,功能最全

回复人: FileNewExit((呵呵)) ( 三级(初级)) 信誉:100 2003-11-22 20:15:12 得分:0

个人认为,最简单还是如qiuji(忆秋季) 所说,调用PlaySound这个API

回复人: kuangren(J※『天若有情天亦老,人间正道是沧桑』) ( 五级(中级)) 信誉:100 2003-11-22 20:39:56 得分:0

调用api就可以了
如qiuji(忆秋季)所说

回复人: turbomagic(蓝天鹅) ( 二级(初级)) 信誉:100 2003-11-22 20:41:48 得分:10

[DllImport("winmm.dll", EntryPoint="PlaySound")]//声音处理函数
private static extern bool PlaySound(string pszSound, IntPtr hmod, uint fdwSound);
..............
private void Form1_Load(object sender, System.EventArgs e)
{
    string path;
    path=@"d:\wav\start.wav";
    PlaySound( path, IntPtr.Zero,0x0001);
}

回复人: kuangren(J※『天若有情天亦老,人间正道是沧桑』) ( 五级(中级)) 信誉:100 2003-11-22 20:41:56 得分:10

public class sndPlay
{
    [DllImport("winmm.dll", EntryPoint="PlaySound")]
    public static extern bool PlaySound(ref Byte snd, IntPtr hmod, uint fdwSound);

    [DllImport("winmm.dll", EntryPoint="PlaySound")]
    public static extern int PlaySound(string  lpszName,int hModule,int dwFlags);

    public enum PlayingFlags :uint 
    {
        SND_SYNC = 0x00,
        SND_ASYNC = 0x01,
        SND_NODEFAULT = 0x02,
        SND_MEMORY = 0x04,
        SND_ALIAS = 0x010000,
        SND_FILENAME = 0x020000,
        SND_RESOURCE = 0x040004,
        SND_ALIAS_ID = 0x0110000,
        SND_ALIAS_START = 0,
        SND_LOOP = 0x08,
        SND_NOSTOP = 0x010,
        SND_VALID = 0x01F,
        SND_NOWAIT = 0x02000,
        SND_PURGE = 0x40
    }

//调用
sndPlay.PlaySound(
    filename, /*文件名自己改*/
    0,
    (int)sndPlay.PlayingFlags.SND_SYNC
);

回复人: musclecn(大力水手) ( 二级(初级)) 信誉:100 2003-11-22 20:46:34 得分:0

up

回复人: Edifier0709(穆子) ( 二级(初级)) 信誉:100 2003-11-22 21:15:09 得分:0

我也认为qiuji(忆秋季)的方法是最简单的..

回复人: hunter4500(hunter4500) ( 二级(初级)) 信誉:100 2003-11-22 23:31:39 得分:0

加上一个media player控件,然后就和media player一样了。

该问题已经结贴 ,得分记录: qiuji (30)、 turbomagic (10)、 kuangren (10)、

Contributors: FHL