柔城

SOSOFT articles

SoSoft项目之向WinForm添加声音资源并控制播放实例

本实例将使用System.Media.SoundPlayer类播放声音,所以先准备PCM 波形文件的声音文件。在源程序的下载包里有提供。本实例选用ringin.wav 文件。

一、添加声音资源

使用Visual Studio新建一个WinForm项目,将窗体命名为MainForm。在“解决方案资源管理器”面板里,打开Properties文件夹,双击资源文件“Resources.resx”。

在打开的页面点击“添加资源”右边的箭头后选择“添加现有文件...”。

在弹出对话框中选择声音文件。这样就把声音资源文件添加到程序集了。

 

二、播放声音文件

 

接下来就是在窗体里播放刚才添加的声音文件了。首先在窗体类里,定义一个播放器,代码如下:

SoundPlayer SoSoftPlayer= new SoundPlayer();

记得添加引用:using System.Media;

 在窗体的构造方法里,加入指定声音文件的代码:

        public MainForm()
        {
            InitializeComponent();
            SoSoftPlayer.Stream = Properties.Resources.Ringin;
        }

 

在窗体上添加两个按钮,一个“播放"、一个“停止”。再添加一个提示标签,命名为label_Tips,Text设置为“点击播放按钮开始播放声音”。

在播放按钮的点击事件里,加入播放代码:

            SoSoftPlayer.PlayLooping();//在新线程中循环播放sosoft.cnblogs.com
            label_Tips.Text = "音频正在播放中...";

 

在停止按钮的点击事件里,加入停止代码:

            SoSoftPlayer.Stop();
            label_Tips.Text = "点击播放按钮开始播放声音";

 行了,按F5运行。

下面是MainForm.cs 的代码:

复制代码
/*
 柔城 2012-09-21
 * sosoft.cnblogs.com
 */
using System;
using System.Media;
using System.Windows.Forms;

namespace Sosoft.Cnblogs.Com
{
    public partial class MainForm : Form
    {

        SoundPlayer SoSoftPlayer = new SoundPlayer();

        public MainForm()
        {
            InitializeComponent();
            SoSoftPlayer.Stream = Properties.Resources.Ringin;
        }

        private void button_Play_Click(object sender, EventArgs e)
        {
            SoSoftPlayer.PlayLooping();//在新线程中循环播放sosoft.cnblogs.com
            label_Tips.Text = "音频正在播放中...";
        }

        private void button_Stop_Click(object sender, EventArgs e)
        {
            SoSoftPlayer.Stop();
            label_Tips.Text = "点击播放按钮开始播放声音";
        }
    }
}
复制代码

 

源代码下载地址:https://files.cnblogs.com/sosoft/SoSoftSound.rar

声音文件在Resources文件夹下。

posted on   柔城  阅读(4340)  评论(2编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧

导航

统计

点击右上角即可分享
微信分享提示