Exemplo n.º 1
0
        public override void LoadLyric(WordLyric lyric)
        {
            OnAddLyricLine?.Invoke(lyric);

            commandList  = new SortedList <float, FlagCommand>();
            CurrentCusor = -1;
            for (int i = 0; i < lyric.Length; i++)
            {
                var line = lyric[i];
                //行切换的指令
                LineCommand lineCmd = new LineCommand(line)
                {
                    linecode = i
                };
                if (i + 1 < lyric.Length)
                {
                    lineCmd.SetupExitStatus(lyric[i + 1].ActiveTime);
                }
                else
                {
                    lineCmd.SetupExitStatus(float.PositiveInfinity);
                }

                commandList.Add(line.ActiveTime, lineCmd);
                //组切换的指令
                HandleGroupCollection(lineCmd, line.LyricGroup, false, lineCmd.enter_group_status, lineCmd.exit_group_status);
                HandleGroupCollection(lineCmd, line.TranslateGroup, true, lineCmd.enter_group_status_translate, lineCmd.exit_group_status_translate);
            }
        }