Example #1
0
        private void OverlayButtonClick(object sender, EventArgs e)
        {
            // Диалоговое окно
            var outputFile = new SaveFileDialog();

            outputFile.FileName   = "OtputFile";
            outputFile.DefaultExt = "*.mp3";
            outputFile.Filter     = "MP3 File (.mp3)|*.mp3";
            if (outputFile.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            // Создание основного трека
            var    musicList = MusicList.Items?.Cast <string>()?.ToList();
            double musicBreak;

            if (!double.TryParse(PauseBetweenTrack.Text, out musicBreak))
            {
                return;
            }

            // TODO: Здесь надо дальше везде обрабатывать исключения на созданиях, наложениях и сохранениях
            var musicTrack       = musicService.Create(musicList, musicBreak);
            var musicTrackLenght = musicService.GetLenght(musicList, musicBreak); // TODO: Передавать трек

            // Создание водяного знака
            var watermarkTrack = watermarkService.Create(
                musicTrackLenght,
                WatermarkPathLabel.Text,
                Convert.ToDouble(WatermarkRepeat.Text),
                Convert.ToDouble(WatermarkOffset.Text));

            // Наложение водяного знака и сохранение в файл
            var mixingFile = watermarkService.Overlay(musicTrack, watermarkTrack, Convert.ToDouble(WatermarkOffset.Text));

            watermarkService.SaveToFile(mixingFile, outputFile.FileName);
        }