C# WPF实现播放声音的两种方法示例

 更新时间:2026年06月08日 09:34:27   作者:xiaoshuaishuai8  
WPF中播放声音可使用SoundPlayer、MediaPlayer或MediaElement,分别适用于不同场景,本文详细介绍了每种方法的实现代码及注意事项,助开发者灵活选择,需要的朋友可以参考下

WPF 播放声音的代码实现

在 WPF 中播放声音可以通过 System.Media.SoundPlayerMediaPlayer 类实现。以下是两种方法的代码示例。

使用SoundPlayer播放简单音频

SoundPlayer 适用于播放短小的 WAV 文件,但不支持 MP3 等格式。

using System.Media;

public void PlaySoundWithSoundPlayer()
{
    // 指定音频文件路径(WAV 格式)
    string soundPath = @"C:\path\to\sound.wav";
    
    // 创建 SoundPlayer 实例并播放
    SoundPlayer player = new SoundPlayer(soundPath);
    player.Play();
}

使用MediaPlayer播放音频(支持 MP3)

MediaPlayer 支持更多音频格式(如 MP3),并提供更灵活的控制。

using System.Windows.Media;

public void PlaySoundWithMediaPlayer()
{
    // 指定音频文件路径(支持 MP3、WAV 等)
    string soundPath = @"C:\path\to\sound.mp3";
    
    // 创建 MediaPlayer 实例
    MediaPlayer player = new MediaPlayer();
    player.Open(new Uri(soundPath, UriKind.RelativeOrAbsolute));
    
    // 注册播放完成事件(可选)
    player.MediaEnded += (sender, e) =>
    {
        player.Close(); // 播放完成后释放资源
    };
    
    player.Play();
}

使用MediaElement在 XAML 中播放音频

如果需要在 UI 中控制播放,可以使用 MediaElement 控件。

<!-- 在 XAML 中添加 MediaElement -->
<MediaElement x:Name="mediaPlayer" LoadedBehavior="Manual" />
// 在代码中控制播放
mediaPlayer.Source = new Uri(@"C:\path\to\sound.mp3", UriKind.RelativeOrAbsolute);
mediaPlayer.Play();

注意事项

  • 确保音频文件路径正确,否则会抛出异常。
  • 使用 MediaPlayerMediaElement 时,支持更多格式,但需注意资源释放。
  • 如需循环播放,可在 MediaEnded 事件中重新调用 Play()

到此这篇关于C# WPF实现播放声音的两种方法示例的文章就介绍到这了,更多相关C# WPF实现播放声音内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#实现数字转换

    C#实现数字转换

    这篇文章主要为大家详细介绍了C#实现数字转换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • c#实现字符串反序输出字符串的实例

    c#实现字符串反序输出字符串的实例

    下面小编就为大家分享一篇c#实现字符串反序输出字符串的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • winform c#中子窗体关闭刷新父窗体的实例

    winform c#中子窗体关闭刷新父窗体的实例

    下面小编就为大家带来一篇winform c#中子窗体关闭刷新父窗体的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • C#实现关机功能

    C#实现关机功能

    这篇文章介绍了C#实现关机功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#操作ftp类完整实例

    C#操作ftp类完整实例

    这篇文章主要介绍了C#操作ftp类,以一个完整实例形式详细分析了C#操作FTP文件传输所涉及的FTP连接、文件传输、参数设置、文件删除等技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • C#中的事务用法实例分析

    C#中的事务用法实例分析

    这篇文章主要介绍了C#中的事务用法,以一个简单实例形式分析了C#创建及使用事物的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • C#中将xml文件反序列化为实例时采用基类还是派生类的知识点讨论

    C#中将xml文件反序列化为实例时采用基类还是派生类的知识点讨论

    在本篇文章里小编给大家整理的是关于C#中将xml文件反序列化为实例时采用基类还是派生类的知识点讨论,有需要的朋友们学习下。
    2019-11-11
  • C#运行外部程序的两种方法小结

    C#运行外部程序的两种方法小结

    本文介绍了C#运行外部程序的两种方法,包括ShellExecute和Process,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-12-12
  • C#并行编程之Task同步机制

    C#并行编程之Task同步机制

    这篇文章介绍了C#并行编程之Task同步机制,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#实现聊天消息渲染与图文混排详解

    C#实现聊天消息渲染与图文混排详解

    在实现聊天软件时,渲染文字表情图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。本文就来和大家分享一下具体实现方法,希望对大家有所帮助
    2023-02-02

最新评论