/// Конвертация файла в wav, если она нужна, запуск БПФ обработки файла. /// При завершении обработки кнопка результата становиться активной. private void runButton_Click(object sender, EventArgs e) { runButton.Enabled = false; try { //Конвертация файла в wav(если требуется) if (this.type == FileType.Mp3 || this.type == FileType.Mp4) { ConverterBackgroundWorker.RunWorkerAsync(); } //Заполнение структуры wav файла данными Analizator.GetWaveData(ref this.wav); } catch (Exception ex) { MessageBox.Show(ex.Message, "Ошибка"); runButton.Enabled = true; return; } //Посекундное БПФ левой и правой дорожки //FFT_bgWorker.RunWorkerAsync(); leftFFTbgWorker.RunWorkerAsync(); rightFFTbgWorker.RunWorkerAsync(); }
/// Производит конвертацию файла в wav в отдельном потоке private void ConverterBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { ConverterBackgroundWorker.ReportProgress(1); //Конвертация файла в wav switch (this.type) { case FileType.Mp3: BinauralAnalysis.Converter.Mp3ToWav(this.wav.Name, "tmpfile.wav"); this.wav.Name = "tmpfile.wav"; break; case FileType.Mp4: //TODO Выделение аудиодорожки из mp4 файла break; } }
private void ConvertButton_Click(object sender, EventArgs e) { try { var xml_path = XMLTextBox.Text; if (!File.Exists(xml_path)) { ErrorMessenger.ShowNoFileError(this, xml_path); return; } var xlsx_path = XLSXTextBox.Text; if (!xlsx_path.ToLower().EndsWith(".xlsx")) { xlsx_path += ".xlsx"; } try { xlsx_path = Path.GetFullPath(xlsx_path); } catch { ErrorMessenger.ShowBadFileNameError(this, xlsx_path); return; } List <TemplateNode> template; try { template = TemplateNode.ParseLines(TemplateTextBox.Lines); } catch (Exception ex) { ErrorMessenger.ShowBadTemplateError(this, ex.Message); return; } var converter = new Converter(xml_path, xlsx_path, template); ConvertButton.Enabled = false; ConverterBackgroundWorker.RunWorkerAsync(converter); } catch (Exception ex) { MessageBox.Show(this, ex.ToString(), "Error: Can not convert XML file.", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void AbortToolStripMenuItem_Click(object sender, EventArgs e) { ConverterBackgroundWorker.CancelAsync(); }