根据业务场景的复杂度,WPF 提供了四个层级的工具类:
| 核心类名 | 所在命名空间 | 支持格式 | 支持视频 | 多轨并发 | 音量/进度控制 | 典型适用场景 |
| SystemSounds | System.Media | 系统内置音 | 否 | 否 | 否 | 弹窗警告、操作错误提示音 |
| SoundPlayer | System.Media | 仅限.wav | 否 | 否 | 否 | 按钮点击短音效、轻量级状态提示 |
| MediaPlayer | System.Windows.Media | MP3/MP4/WAV 等 | 需配合 Drawing | 是 | 是 | 后台播放音乐、游戏多通道混音 |
| MediaElement | System.Windows.Controls | MP3/MP4/WAV 等 | 是(直接渲染) | 是 |
1. 极简系统提示音:SystemSounds
如果你只需要在用户操作成功或报错时发出一声 Windows 原生提示音,无需准备任何音频文件。
WPF 播放 Windows 系统声音(SystemSounds)
命名空间:using System.Media;,和 WPF 本身无关,是.NET 自带类,WPF/WinForm 通用,底层封装 Win32MessageBeep
⚠️ 一共只有 5 个固定系统音,音量、时长不能控制,声音由用户 Windows 声音方案决定;用户在控制面板关掉对应事件就会无声
表格
| 静态属性 | 含义 | 常用场景 |
|---|---|---|
SystemSounds.Asterisk | 星号 / 信息提示 | 普通提示、成功 |
SystemSounds.Beep | 基础蜂鸣 | 简单嘀一声 |
SystemSounds.Exclamation | 感叹号 / 警告 | 告警、异常提醒 |
SystemSounds.Hand | 停止 / 错误 | 严重报错、禁止操作 |
SystemSounds.Question | 问号 | 确认弹窗询问 |
1232
using System.Media; // 信息提示音 SystemSounds.Asterisk.Play(); // 警告音 SystemSounds.Exclamation.Play(); // 错误音 SystemSounds.Hand.Play(); // 询问音 SystemSounds.Question.Play(); // 蜂鸣 SystemSounds.Beep.Play();