在另一个声音运行之前和之后播放音乐,从它停止的点开始

时间:2016-05-18 20:06:30

标签: c# winforms audio

我正在为我的小游戏做一个选项菜单。例如,菜单具有启用音乐和声音的功能。

如果启用音乐和声音,则会发生以下情况:

  1. 播放音乐
  2. 如果你赢了,那就赢一场胜利
  3. 沉默。
  4. 应该发生什么: 1.播放音乐 2.如果你赢了,就开始发声 3.从停止的地方播放音乐

    现在,我检查是否选中了复选框,如果是,请播放音乐:

    else if (enable_music.Checked && enable_sound.Checked && download_no)
            {
                //Store the State of the Application
                Properties.Settings.Default.enable_music = true;
                Properties.Settings.Default.enable_sounds = true;
                //Load Music
                SoundPlayer snd = new SoundPlayer(fileName_standard);
                //We need to call the Sound only if we won or lost, so we save the Preference and call it in the Winscreen
                Properties.Settings.Default.enable_sounds = true;
                //Play the files
                snd.Play();
                Close();
            }
    

    如果显示Winscreen,则仅播放获胜的声音。

    所以我想把音乐放到一个新方法中,稍后再调用它:

    private async Task PlayMusic(SoundPlayer snd)
        {
            snd.Play();
        }
    

    致电:

    else if(enable_darkmode.Checked && download_no)
            {
                SoundPlayer snd= new SoundPlayer(fileName_dark);
                PlayMusic(snd);
                Close();
            }
    

    但是,如果另一个文件开始播放,正常音乐会停止。 那么如果正在播放另一个文件,如何让音乐暂停,如果文件停止播放则如何恢复?

    谢谢!

1 个答案:

答案 0 :(得分:0)

使用单独的线程来运行音乐播放的单独实例,因此orugunal可以在第二次运行时暂停而不会中断暂停的音频