现在要播放一个 wave 文件 (*.wav),查了一下网上的代码。一般是用 winmm.dll 中的 PlaySound() 或 snPlaySound 函数。下面代码以 PlaySound() 为例,写了一个 WavePlayer 类。包含两个静态方法,可以播放和停止播放声音文件。

播放 wave 文件using System;
播放 wave 文件
using System.Collections.Generic;
播放 wave 文件
using System.Text;
播放 wave 文件
using System.Runtime.InteropServices;
播放 wave 文件
播放 wave 文件
namespace PlaySoundProj

但是如果要播放流呢?根据 Win32 api 上的说明,SND_MEMORY 可以做,但如何做,不知道……
后来又查了一下,原来 Framework 标准库里已经有这样功能的类了,System.Media.Player。它不但可以播放声音文件,还可以播放流。

这样网上有人问的播放资源文件里的声音文件的问题就可以解决了。下面是一段示例。这里 chimes 是嵌入的 wave 文件。

播放 wave 文件SoundPlayer player = new SoundPlayer(Properties.Resources.chimes);
播放 wave 文件            player.Play();

相关文章: