Exemplo n.º 1
0
        public static void play(MediaPlayer player, SoundType type = SoundType.SoundEffect, SoundLoop loop = SoundLoop.None)
        {
            SoundConfiguration configuration = new SoundConfiguration(type, loop);

            currentMediaPlayers[player] = configuration;

            switch (type)
            {
            //todo make music transition flow correctly
            case SoundType.BattleMusic:
                player.Volume = PlayBattleTheme ? MusicVolume : 0;
                break;

            case SoundType.MenuMusic:
                player.Volume = PlayBattleTheme ? 0 : MusicVolume;
                break;

            case SoundType.SoundEffect:
                player.Volume = SoundVolume;
                break;
            }

            player.MediaEnded += on_player_end;
            player.Play();
        }
Exemplo n.º 2
0
        private static void on_player_end(object sender, EventArgs e)
        {
            MediaPlayer player = (MediaPlayer)sender;

            if (!currentMediaPlayers.ContainsKey(player))
            {
                return;
            }

            SoundConfiguration configuration = currentMediaPlayers[player];

            if (configuration.Loop == SoundLoop.Loop)
            {
                player.Position = TimeSpan.FromMilliseconds(1);
                player.Play();
            }
            else
            {
                currentMediaPlayers.TryRemove(player, out configuration);
            }
        }