如何在C#、.NET中播放声音

问题描述 投票:0回答:7

我有一个用 C#/.NET 编写的 Windows 应用程序。

如何在单击按钮时播放特定的声音?

c# .net audio
7个回答
287
投票

您可以使用:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();

108
投票

您可以使用SystemSound,例如

System.Media.SystemSounds.Asterisk.Play();


35
投票

对于 Windows 窗体,一种方法是使用

SoundPlayer

using System.Media;

private void Button_Click(object sender, EventArgs e)
{
    using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav")) {
        soundPlayer.Play(); // can also use soundPlayer.PlaySync()
    }
}

MSDN 页面

这也适用于 WPF,但您还有其他选择,例如使用

MediaPlayer
MSDN 页面


17
投票

其他信息。

对于想要无缝融入Windows环境的应用程序来说,这是一个有点高级的答案。其他答案中提供了播放特定声音的技术细节。除此之外,请务必注意以下两点:

  1. 典型场景使用五种标准系统声音,即

    • 星号 - 当您想要突出显示当前事件时播放

    • 问题 - 玩问题(系统消息框窗口播放这个)

    • 感叹号 - 玩感叹号图标(系统消息框窗口播放这个)

    • 嘟嘟声(默认系统声音)

    • 关键停止(“手”)- 播放错误(系统消息框窗口播放此)

    课程方法

    System.Media.SystemSounds
    将为您播放。

  2. 声音控制面板中实现用户可自定义的任何其他声音

    • 这样用户就可以轻松地更改或删除应用程序中的声音,并且您无需为此编写任何用户界面 - 它已经存在了
    • 每个用户配置文件都可以以自己的方式覆盖这些声音
    • 操作方法:
      • 在 Windows 注册表中创建应用程序的声音配置文件(提示:无需编程,只需将密钥添加到应用程序的安装程序中即可。)
      • 在您的应用程序中,从注册表项读取声音文件路径或 DLL 资源并播放它。 (如何播放声音你可以在其他答案中看到。)

9
投票

下面的代码也允许播放 mp3 文件和内存中的波形文件

player.FileName = "123.mp3";
player.Play();

来自 http://alvas.net/alvas.audio,samples.aspx#sample6

Player pl = new Player();
byte[] arr = File.ReadAllBytes(@"in.wav");
pl.Play(arr);

来自 http://alvas.net/alvas.audio,samples.aspx#sample7


3
投票

我认为您必须首先将 .wav 文件添加到资源中。例如,您有名为 Sound.wav 的声音文件。将 Sound.wav 文件添加到 Resources 后,您可以使用以下代码:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();

这是播放声音的另一种方式。


2
投票

要使用 C# 在 Windows 窗体中播放音频文件,让我们看一下简单的示例,如下所示:

1.Go Visual Studio(VS-2008/2010/2012) --> 文件菜单 --> 点击新建项目。

2.在“新项目”中 --> 单击“Windows 窗体应用程序”-->“给出名称”,然后单击“确定”。

将打开一个新的“Windows Forms”项目。

3.将 Button 控件从工具箱拖放到 Windows 窗体。

4.双击按钮自动创建默认的Click事件处理程序,并添加以下代码。

此代码显示“文件打开”对话框,并将结果传递给您将在下一步中创建的名为“playSound”的方法。

 OpenFileDialog dialog = new OpenFileDialog();
 dialog.Filter = "Audio Files (.wav)|*.wav";


if(dialog.ShowDialog() == DialogResult.OK)
{
  string path = dialog.FileName;
  playSound(path);
}

5.在button1_Click事件处理程序下添加以下方法代码。

 private void playSound(string path)
 {
   System.Media.SoundPlayer player = new System.Media.SoundPlayer();
   player.SoundLocation = path;
   player.Load();
   player.Play();
 }

6.现在让我们通过按 F5 来运行代码来运行应用程序。

7.单击按钮并选择音频文件。文件加载后,将播放声音。

我希望这对初学者来说是有用的例子......

© www.soinside.com 2019 - 2024. All rights reserved.