按下按钮后如何停止播放mp3?

时间:2019-01-21 13:13:28

标签: c# visual-studio-2015 wmplib

我刚刚从C ++和Rad Studio移到了C#和Visual Studio,因为我可以看到更多的教程,并且可以在Internet上获得有关VC的帮助。但是..我有问题。

我知道在创建表格时(程序启动时)如何播放音乐。但是,如何停止使用普通TButton播放音乐?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _01_21_2019
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // play an intro sound when a form is shown
              WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
              wplayer.URL = "intro.mp3";
              wplayer.controls.play();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            wplayer.controls.stop(); // Here it is not working - "current context"



        }
    }
}

编译器说

  

错误CS0103在当前上下文中不存在名称'wplayer'“

我试图将wplayer.controls.stop()移到play()下方;而且有效。但是如何使用按钮停止音乐?

这是pastebin上的代码:

https://pastebin.com/v9wDn5mJ

1 个答案:

答案 0 :(得分:0)

您应该在函数外部实例化该对象,以便该对象可用于类实例。

您可能还想研究mvvm模式。在编写WPF和其他一些应用程序时非常有用。

public partial class Form1 : Form
{
    WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Shown(object sender, EventArgs e)
    {
        // play an intro sound when a form is shown    
        wplayer.URL = "intro.mp3";
        wplayer.controls.play();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        wplayer.controls.stop();
    }
}