播放和AfterPlay事件时如何控制声音播放器?

时间:2013-01-31 07:04:32

标签: c# soundplayer

我有播放和停止按钮,我想将它们组合成一个按钮,它有两个功能。但是,我找不到任何WhilePlaying()或AfterPlay()事件。我搜索了一些,我发现使用线程可以控制我想要的事件。

这就是我想要的。当用户点击“播放”按钮时,“播放”图标将变为“停止”图标,用户将立即停止播放,或者如果声音播放完毕,“停止”图标将变为“播放”图标。

以下是我在程序中使用的代码:

        private void btPlayFile_Click(object sender, EventArgs e)
        {
        try
        {                
            wavPlayer = new SoundPlayer();
            string promptPath = System.Configuration.ConfigurationSettings.AppSettings["PromptStorage"];
            wavPlayer.SoundLocation = promptPath + tePromptFile.Text;
            wavPlayer.LoadCompleted += new AsyncCompletedEventHandler(wavPlayer_LoadCompleted);
            wavPlayer.LoadAsync();

        }
        catch (Exception ex)
        {

            XtraMessageBox.Show("PlayFile Hata:" + ex.Message);
        }
    }

    void wavPlayer_LoadCompleted(object sender, AsyncCompletedEventArgs e)
    {
        try
        {
            ((System.Media.SoundPlayer)sender).Play();

        }
        catch (Exception ex)
        {

            XtraMessageBox.Show("PlayFile Hata:" + ex.Message);
        }
    }

    private void btStopFile_Click(object sender, EventArgs e)
    {
        try
        {
            wavPlayer.Stop();
        }
        catch (Exception ex)
        {
            XtraMessageBox.Show("PlayFile Hata:" + ex.Message);
        }
    }               

0 个答案:

没有答案