1

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

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

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

        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);
        }
    }               
4

0 回答 0