Автор работы: Пользователь скрыл имя, 11 Декабря 2013 в 23:28, курсовая работа
Целью данного курсового проекта является написание программы которая позволяла бы воспроизводить и обрезать MP3 и WAV файлы, а также изменять громкость и скорость воспроизведения дорожки, вырезанного фрагмента WAV файла.
Для реализации данного проекта был выбран язык C#, как один из лучших и простых объектно-ориентированных языков программирования на данный момент.
ВВЕДЕНИЕ 3
1 ПОСТАНОВКА ЗАДАЧИ 4
1.1ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ 4
1.2 ПОСТАНОВКА ЗАДАЧИ 9
2 ПРОЕКТИРОВАНИЕ 10
2.1 ВЫБОР ОПЕРАЦИОННОЙ СИСТЕМЫ 10
2.2 ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ 10
2.3 ВЫБОР ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПРОМЕЖУТОЧНОГО УРОВНЯ 10
2.4 ВЫБОР ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ 11
3 РАЗРАБОТКА 12
3.1 ВЫБОР АРХИТЕКТУРЫ СИСТЕМЫ 12
3.2 ПОСТРОЕНИЕ ДИАГРАММ ПРЕЦЕДЕНТОВ 12
3.3 РАЗРАБОТКА ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ 14
3.4 РАЗРАБОТКА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА 18
3.5 РАЗРАБОТКА АРХИТЕКТУРЫ ПРИЛОЖЕНИЯ 19
3.6 РАЗРАБОТКА АЛГОРИТМОВ РАБОТЫ ПРОГРАММЫ 25
3.6.1 Метод TrimWavFile класса AudioProcessing 26
3.6.2 Метод TrimMp3 класса AudioProcessing 27
3.6.3 Метод ChangeVolume класса AudioProcessing 28
3.6.4 Метод speedUpX1_2 класса AudioProcessing 29
3.6.5 Метод speedDownX1_2 класса AudioProcessing 29
4 ТЕСТИРОВАНИЕ ПРОГРАММЫ 31
4.1 ТЕСТИРУЕМЫЕ ФУНКЦИИ 31
4.2 ТЕСТИРОВАНИЕ 32
5 РУКОВОДСТВО ОПЕРАТОРА 34
5.1 НАЗНАЧЕНИЕ ПРОГРАММЫ 34
5.2 ТЕХНИЧЕСКИЕ СРЕДСТВА ДЛЯ ЗАПУСКА ПРОГРАММЫ 34
5.3 РАБОТА С ПРОГРАММОЙ 34
ВЫВОДЫ 37
ПЕРЕЧЕНЬ ССЫЛОК 38
Номер |
ВИ – 10 |
Название |
Выход. |
Участники |
Пользователь. |
Описание |
При выполнении данного варианта использования пользователь выходит из программы. |
Предварительные условия |
Нет. |
Выходные условия |
Прекращение работы программы. |
Порядок действий |
Пользователь нажимает на крестик в правом верхнем углу программы. |
Альтернативный порядок действий |
Нажать Alt+F4. |
Приоритет |
Высокий. |
Номер |
ВИ – 11 |
Название |
Обработка WAV. |
Участники |
Пользователь. |
Описание |
При выполнении данного варианта использования пользователь задает параметры для обработки WAV. |
Предварительные условия |
Открыт файл с расширением wav. Выделен вырезаемый фрагмент. |
Выходные условия |
Вырезаемый фрагмент будет обработан в соответствии с заданными параметрами. |
Порядок действий |
Пользователь изменяет скорость воспроизведения и амплитуду звучания. |
Альтернативный порядок действий |
Нет |
Приоритет |
Высокий. |
Номер |
ВИ – 12 |
Название |
Изменение скорости проигрывания. |
Участники |
Пользователь. |
Описание |
При выполнении данного варианта использования пользователь изменяет скорость воспроизведения вырезанного фрагмента. |
Предварительные условия |
Открыт файл с расширением wav. Выделен вырезаемый фрагмент. |
Выходные условия |
Изменена скорость проигрывания вырезанного фрагмента. |
Порядок действий |
Пользователь нажимает на стрелочку возле Combo box и выбирает нужную скорость. |
Альтернативный порядок действий |
Нет |
Приоритет |
Высокий. |
Номер |
ВИ – 13 |
Название |
Изменение амплитуды звучания. |
Участники |
Пользователь. |
Описание |
При выполнении данного варианта использования пользователь изменяет громкость воспроизведения вырезаемого фрагмента. |
Предварительные условия |
Открыт файл с расширением wav. Выделен вырезаемый фрагмент. |
Выходные условия |
Изменена громкость |
Порядок действий |
Пользователь двигает бегунок для регулирования громкости вырезаемого фрагмента. |
Альтернативный порядок действий |
Нет |
Приоритет |
Высокий. |
3.4 Разработка графического интерфейса
Исходя
из анализа поставленной задачи, выяснилось,
что графический интерфейс
– кнопки (элемент «button»);
– поля задания начального и конечного времени выделенного фрагмента (элемент «TimeEditor»);
– область для задания параметров обработки вырезанного фрагмента wav файла (элемент «GroupBox»);
– область для навигации по аудио файлу, а также выделения вырезаемого фрагмента (элемент «WaveformTimeline»);
– поле для отображения текущего времени воспроизведения (элемент «DigitalClock»);
– информационные метки (элемент «label»);
– бегунки для регулирования громкости (элемент «Slider»);
– выпадающий список, для задания скорости воспроизведения вырезаемого фрагмента wav файла (элемент «ComboBox»).
Ввод входных данных выполняется с помощью дополнительных диалоговых окон.
Прототип графического интерфейса пользователя разрабатываемого программного продукта изображен на рисунке 3.3.
Рисунок 3.3 – Прототип графического интерфейса пользователя
3.5 Разработка архитектуры приложения
Под архитектурой приложения понимают диаграмму классов. Исходя из анализа поставленной задачи, а так же предметной области разрабатываемого проекта, были выделены такие основные сущности как MainWindow (интерфейс пользователя), NAudioEngine (класс плеера), UIHelper (класс для привязки элементов управления к свойствам класса), AudioProcessing (класс для вырезания и обработки фрагмента), SampleAggregator (класс для обработки сэмплов открытого файла).
Класс MainWindow отвечает за визуализацию работы программы и ввод входных данных, AudioProcessing – за вырезку фрагмента и обработку его, NAudioEngine – за проигрывание аудио файла и построение волны аудио, UIHelper – за привязку элементов управления к свойствам класса NAudioEngine, SampleAggregator – за обработку семплов открытого файла и построение по ним волны аудио.
Класс MainWindow имеет следующие обработчики событий:
1) soundEngine_PropertyChanged – обработчик события для перемотки аудио файла;
2) BrowseButton_Click – обработчик событий кнопки «Browse» для открытия аудио файла;
3) StopButton_Click – обработчик событий кнопки «Stop» для остановки проигрывания аудио файла;
4) PlayButton_Click – обработчик событий кнопки «Play» для проигрывания аудио файла;
5) PauseButton_Click – обработчик событий кнопки «Pause» для приостановки проигрывания аудио файла;
6) TrimButton_Click – обработчик событий кнопки «Trim» для вырезания выделенного фрагмента из аудио файла;
7) Window_Closing – обработчик событий для освобождения ресурсов программы.
Поля:
Класс AudioProcessing имеет следующие вложенные типы:
Методы:
Класс UIHelper имеет следующие методы:
Класс SampleAggregator имеет следующие методы:
Поля:
Класс NAudioEngine реализует следующие интерфейсы:
– InotifyPropertyChanged
– IwaveformPlayer
– Idisposable
А также имеет следующие поля:
Методы:
Обработчики событий:
Рисунок 3.4 – Диаграмма классов разрабатываемой программы
В результате создания программного продукта могут быть добавлены поля и методы для более корректной визуализации и обработки исключений.
3.6 Разработка алгоритмов работы программы
Исходя из анализа поставленной задачи, а также разработанной диаграммы классов, был разработан обобщенный алгоритм работы разрабатываемой программы, который представленный в виде диаграммы активности (рисунок 3.5)
Рисунок 3.5 – Обобщенный алгоритм работы разрабатываемой программы
Исходя из анализа поставленной задачи, а также разработанной диаграммы классов, была выделена группа методов, работа которых является особо важной: метод TrimWavFile, TrimMp3, ChangeVolume, speedUpX1_2, speedDownX1_2 класса AudioProcessing. Для этих методов были разработаны обобщенные алгоритмы работы.
3.6.1 Метод TrimWavFile класса AudioProcessing
Метод TrimWavFile класса AudioProcessing, вырезает фрагмент из wav файла и принимает параметры такие как: путь к исходному файлу, путь для сохранения нового файла, время с которого нужно вырезать, время по которое нужно вырезать, коэффициент для амплитуды звука, индекс для выбора метода увеличения или уменьшения скорости проигрывания. Алгоритм работы описанного метода изображен на рисунке 3.10.
Рисунок 3.6 – Алгоритм вырезания фрагмента из wav
3.6.2 Метод TrimMp3 класса AudioProcessing
Метод TrimMp3 класса AudioProcessing, вырезает фрагмент из mp3 файла и принимает параметры такие как: путь к исходному файлу, путь для сохранения нового файла, время с которого нужно вырезать, время по которое нужно вырезать. Алгоритм работы описанного метода изображен на рисунке 3.7.
Рисунок 3.7 – Алгоритм вырезания фрагмента из mp3
3.6.3 Метод ChangeVolume класса AudioProcessing
Информация о работе Разработка программы для редактирования аудио файлов