コード例 #1
0
        private static void PlayEffect()
        {
            try
            {
                string dir = "sounds/effects";
                if (!Directory.Exists(dir))
                {
                    return;
                }
                var files = Directory.GetFiles(dir).Where(f => f.EndsWith(".mp3")).ToArray();
                if (files.Length > 0)
                {
                    Task.Run(() =>
                    {
                        effectPlayer.Load(files.ChooseRandomly());
                        effectPlayer.Play();

                        Thread.Sleep(200);
                        //don't want it to always do the same action always.
                        if (rand.Next(0, 10) % 2 == 0)
                        {
                            if (isMp3)
                            {
                                LowerVolume(mp3Player, 5, 150);
                            }
                        }

                        PlayAsync();

                        //don't want it to always do the same action always.
                        if (rand.Next(0, 10) % 2 == 0)
                        {
                            effectPlayer.Load(files.ChooseRandomly());
                            effectPlayer.Play();
                        }
                    });
                }
            }
            catch
            {
            }
        }
コード例 #2
0
        public static async void PlayAsync()
        {
            if (Settings.GetSettings().MusicFiles.Count == 0 || !Settings.GetSettings().MusicOn)
            {
                return;
            }
            try
            {
                if (paused)
                {
                    await ResumeAsync();

                    return;
                }

                if (Playing)
                {
                    return;
                }

                var    musicFile = Settings.GetSettings().MusicFiles.ChooseRandomly();
                string file      = musicFile.FileName;
                string path      = musicFile.FilePath;
                byte[] buffer    = null;
                if (file.ToLower().EndsWith(".mp3"))
                {
                    isMp3 = true;
                    await Task.Run(() =>
                    {
                        mp3Player.Load(path);
                        ///buffer = await ConvertMp3ToWaveAsync(path);
                        mp3Player.Play();
                    });

                    Playing = true;
                    return;
                }
                isMp3  = false;
                buffer = File.ReadAllBytes(path);
                player.Load(buffer);
                player.Play();
                Playing = true;
            }
            catch (Exception ex)
            {
                Playing = false;
            }
        }