Создание проигрывателя MP3 Player

Курсовой проект

Мультимедиа технологии являются одной из наиболее активно развивающихся областей ИТ. В данной области активно работают не только крупные фирмы, но и мелкие студии и университеты. Использование мультимедиа технологий находит применение в интерактивных обучающихся и информационных системах, САПР, развлечениях и многих других областях.

Особенностью мультимедиа технологий является объединение разнородных компонентов информации в единородное цифровое представление. Каждый оптический носитель DVD может вместить десятки гигабайт информации. Информация на оптическом носителе DVD может храниться в течение десятков лет и требует минимальных затрат на переработку.

DVD можно использовать в качестве единой замены аудиоплееру, видеомагнитофону, CD-ROM, дисководу, слайдеру и прочим устройствам. Кроме этого, DVD приближает информацию к уровню виртуальной реальности, что делает использование этого оптического носителя особенно привлекательным в различных областях.

Мультисреда

Мультисреду можно разделить на три группы; в каждой группе находится определенный тип информации: аудиоряд, видеоряд, текстовая информация. Аудиоряд может содержать речь, музыку и звуки.

Информационная емкость является главной проблемой при использовании аудиоряда. Например, для записи одной минуты звука идеального качества типа WAVE, потребуется примерно 10 Мбайт, что означает, что стандартный объем CD-ROM позволяет записать не более одного часа качественной звуковой информации. Однако компрессия звуковой информации позволяет уменьшить требования к памяти, что решает данную проблему.

Мультимедиа-технологии являются современным и эффективным средством передачи информации. Одним из направлений использования мультимедиа является использование звуковых эффектов и музыки, синтезируемых программно-управляемыми электронными синтезаторами с помощью MIDI (Musical Instrument Digital Interface).

MIDI позволяет синтезировать звуки музыкальных инструментов и звуковые эффекты, а также корректировать и записывать их с помощью музыкальных редакторов.

Одним из главных преимуществ MIDI является малый объем требуемой памяти. Например, 1 минута MIDI-звука занимает в среднем всего 10 Кбайт. Это делает использование MIDI очень эффективным для передачи и хранения звуковых данных.

Видеоряды также являются важной частью мультимедиа-технологий. Выделяют два типа видеорядов: статический и динамический.

Статический видеоряд включает в себя графику, такую как рисунки, интерьеры, поверхности, символы в графическом режиме, а также фотографии и сканированные изображения.

10 стр., 4555 слов

Использование технологии проблемного обучения на х литературного чтения

Объектом исследования является проблемное обучение, предметом — уроки литературного чтения. Целью работы является выявление и создание условий на уроках литературного чтения для развития учащихся через внедрение в педагогическую практику технологии проблемного обучения. Для ...

Динамический видеоряд представляет собой последовательность статических элементов, называемых кадрами. Каждый кадр представляет собой статическое изображение, и последовательность кадров создает эффект движения.

Для хранения статических изображений требуется определенный объем памяти. Например, для полного экрана в режиме 640 х 480 и 16 цветов требуется около 150 Кбайт памяти. В режиме 320 х 200 и 256 цветов требуется около 62,5 Кбайт памяти, а в режиме 640 х 480 и 256 цветов — около 300 Кбайт памяти.

Такие значительные объемы памяти при использовании аудио- и видеорядов предъявляют высокие требования к носителям информации, видеопамяти и скорости передачи данных.

CD-ROM является одним из основных носителей информации для мультимедиа-технологий. Благодаря большому информационному объему оптического диска, размещение текстовой информации не представляет сложностей и ограничений.

Основные направления использования мультимедиа-технологий включают создание электронных изданий для образования и развлечения, использование в телекоммуникациях для просмотра телепередач и участия в мультимедиа-конференциях, а также создание мультимедийных информационных систем, предоставляющих наглядную информацию по запросу пользователя.

На рынке представлены как полностью укомплектованные мультимедиа-компьютеры, так и отдельные комплектующие и подсистемы, включающие в себя звуковые карты, приводы компакт-дисков, джойстики, микрофоны и акустические системы.

1. ПОСТАНОВКА ЗАДАЧИ

1.1 Организационно-экономическая сущность задачи

Цель настоящей работы – разработка мультимедиа-проигрывателя с функционалом обычного проигрывателя.

Задачами проекта являются:

  • Разработка мультимедиа-проигрывателя;
  • Создание удобного пользовательского интерфейса;
  • Создание эквалайзера и регулятора громкости;
  • Создание строки описания треков;
  • Создание программы меню и информации «О программе».

Мультимедиа-технологии применяются в разных областях, таких как локализация трехмерного звука, сетевые игры, создание нового периферийного оборудования и устройств ввода данных, дву- и трехмерная графика, видео, связь с различными источниками информации, а также области телемедицины и обучения с использованием компьютерных технологий.

1.2 Предмет и объект исследования

Предметом исследования является систематизированная обработка музыкальных файлов.

Объектом исследования является объектно-ориентированное программирование (ООП).

1.3 Создание мультимедиа-проигрывателя

Для создания мультимедиа-проигрывателя будет использоваться ООП. Создание данного приложения начнется с проектирования классов. Будут созданы классы для работы с музыкальными файлами и классы для создания пользовательского интерфейса. Также будет создан класс для эквалайзера, регулятора громкости и для информации о треке.

1.3.1 Классы для работы с музыкальными файлами

Данные классы будут отвечать за работу с музыкальными файлами, их воспроизведение, перемотку и т.д. Работа с файлами будет осуществляться с помощью готовых библиотек.

1.3.2 Классы для создания пользовательского интерфейса

Для создания пользовательского интерфейса будут использоваться стандартные библиотеки Windows Forms. Создадим основное окно проигрывателя, кнопки управления воспроизведением, строку описания трека, дисплей эквалайзера и регулятор громкости.

4 стр., 1923 слов

Мультимедиа системы. Компьютер и видео

... и иную информацию. Организации и подразделения, обладающие информационными ресурсами и средствами мультимедиа, использующими мультимедийные технологии порой называют медиатеками. Технические средства мультимедиа, как и любые компьютерные информационные системы, ... с создания исходного ... и его величины (скорости потока данных). Видео и анимация. Сейчас, когда сфера применения персональных компьютеров ...

1.3.3 Класс для эквалайзера и регулятора громкости

Данный класс будет отвечать за работу эквалайзера и регулятора громкости. Для работы с аудиофайлами эквалайзер будет применять методы фурье-анализа. Регулятор громкости будет изменять амплитуду аудиосигнала.

1.3.4 Информация о треке

Для отображения информации о треке будет создан отдельный класс. В этом классе будет храниться название трека, имя исполнителя, жанр и другие атрибуты.

1.4 Удобный пользовательский интерфейс

Пользовательский интерфейс должен быть простым и понятным даже для новых пользователей. Для удобства использования будет создано удобное и понятное меню со всеми функциями. Также интерфейс должен быть дружественным для пользователей с ограниченными возможностями.

1.5 Создание эквалайзера и регулятора громкости

Эквалайзер и регулятор громкости – необходимые компоненты мультимедиа-проигрывателя. Для создания эквалайзера будут использоваться методы фурье-анализа, а для регулятора громкости – изменение амплитуды аудиосигнала.

1.6 Создание строки описания треков

Строка описания треков – один из элементов пользовательского интерфейса. Эта строка будет содержать информацию о текущем воспроизводимом треке – название, исполнителя и другие атрибуты.

1.7 Создание программы меню и информации «О программе»

Для удобства использования мультимедиа-проигрывателя будет создано удобное меню со всеми функциями приложения, а также информация о приложении «О программе».

Из проведенных специальных исследований было выяснено, что только четверть услышанной информации остается в памяти, треть увиденной информации запоминается, а при комбинированном воздействии зрения и слуха запоминается 50% информации. Однако, если учащегося вовлечь в активные действия в процессе изучения с помощью мультимедийных приложений, то запоминается уже 75% информации.

Следующей областью применения MP3 проигрывателя является частное прослушивание MP3 файлов. Этот проигрыватель предоставляет возможности регулировки громкости, баланса колонок, настройки звука с помощью эквалайзера. Также пользователь может просмотреть окно «О программе» и информацию о проигрываемом файле, а также внести корректировки в эту информацию.

В целом, к программному продукту предъявляются следующие требования:

  • а) контроль вводимых данных;
  • б) диалог с пользователем, реализованный с помощью меню;
  • в) интуитивно понятный интерфейс;
  • г) организация тестирования;
  • д) предоставление справочного материала;
  • е) хранение справочного материала в файле на диске.

1.2 Входная информация

Проигрыватель MP3 Player 1.0 предназначен для воспроизведения мультимедийных файлов с расширением MP3, которые находятся на компьютере, а также для воспроизведения компакт-дисков и DVD-дисков. Кроме того, пользователь может синхронизировать мультимедийные файлы с переносным устройством.

Формат MP3 (более точно, англ. MPEG-1/2/2.5 Layer 3; но не MPEG-3) представляет собой третий слой формата кодирования звуковой дорожки MPEG. Этот формат является лицензируемым форматом файла для хранения аудиоинформации.

10 стр., 4817 слов

Языка программирования Delphi. Разработка практических заданий

... базами данных. 1.1 Структура среды программирования Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. ... приложений, что используется в Windows 95. Если Вы используете SDI приложение типа Delphi, то уже знаете, что перед началом работы лучше минимизировать другие приложения, ... (рис. 4). Заметьте, что информация в Инспекторе Объектов меняется в ...

MP3 является одним из самых распространенных и популярных форматов цифрового кодирования звуковой информации с потерями. Он широко используется в файлообменных сетях для передачи музыкальных произведений. Формат MP3 может проигрываться практически на всех популярных операционных системах, на большинстве портативных аудиоплееров, а также поддерживается всеми современными моделями музыкальных центров и DVD-плееров.

1.3 Выходная информация

Начало работы с проигрывателем MP3 Player v1.0

Рисунок 1. Главная форма программы

MP3 Player v1.0 содержит блок для списка воспроизведения, регулятор громкости, временной ползунок и таймер отсчета времени воспроизведения.

Если после запуска приложения в нем не обнаружено файлов для проигрывания и проигрывание было запущено, то появится окно с ошибкой.

Если файлов не обнаружено и произведена попытка перемотать на следующий тег или на предыдущий, то всплывет окно с ошибкой.

Окно «Помощь»

Окно «О программе»

2. ТЕХНИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

2.1 Характеристика технических средств

Для корректной работы программы необходимо наличие компьютера со следующей конфигурацией:

  • видеокарта с поддержкой режима 640×480, 16 цветов;
  • процессор 80386 и выше;
  • VGA монитор;
  • 1Mb оперативной памяти;
  • клавиатура;
  • мышь;
  • колонки;
  • дисковод гибких дисков.

2.2 Характеристика средств моделирования и программирования

ОС MS-WindowsXP. В основе системы Windows XP лежит код Windows NT и Windows 2000, зарекомендовавший себя надежностью и характеризуемый 32-разрядной вычислительной архитектурой. ХР унаследовала от NT/2000 и более совершенный механизм управления памятью, чем у Windows 95, 98 или Me, и лучший аппарат управления многозадачностью.

Windows XP поставляется в двух вариантах — Home и Professional (также существует находящаяся еще в развитии Windows XP Server).

Версия XP Home позиционируется как ОС на смену линейки 9x/Me. В ее комплект поставки входит большое количество программ, ориентированных на развлечения и досуг: игры, специализированные мультимедиа-приложений, графические и видеоредакторы, а также утилиты для работы в Интернете.

XP Professional позиционируется как эффективная замена Windows 2000 Professional. Она поддерживает множество бизнес-приложений, работу с большими локальными сетями, и предназначена, в первую очередь, для использования в корпоративном секторе рынка. Эта версия, в отличие от версии Home, дополнительно поддерживает такие функции:

Delphi — это комбинация нескольких важнейших технологий:

— RemoteDesktop — позволяет удаленную работу на компьютере;
— OfflineFilesandFolders — позволяет иметь доступ к сетевым ресурсам когда отключены от сервера;
— Scalableprocessorsupport — поддержка многопроцессорных систем;
— EncryptingFileSystem — шифрование файлов на средствами файловой системы;
— AccessControl — ограничение доступа к файлам, программам и другим ресурсам;
— Centralizedadministration — централизованное администрирование системы в рамках домена;
— GroupPolicy — облегчает администрирование групп пользователей на компьютере;
— SoftwareInstallationandMaintenance — автоматически инсталлирует, конфигурирует, ремонтирует и удаляет программное обеспечение;
— RoamingUserProfiles — доступ к Вашим документам и настройкам из любого места, где Вы подсоединились в домен;
— RemoteInstallationService (RIS) — поддержка удаленной инсталляции операционной системы по сети;
— Multi-lingualUserInterface (MUI) add-on — поддержка изменения языков интерфейса различных пользователей.

Хотя официальные системные требования и не кажутся слишком завышенными, для более-менее комфортной работы понадобится процессор не менее 500 МГц и не менее 128 Мб оперативной памяти. Но, если пожертвовать всякими «примочками» и визуальными эффектами, то вполне комфортно можно будет работать и на менее мощных системах.

Система программирования Delphi — это греческий город, где жил дельфийский оракул. И этим именем был назван программный продукт с феноменальными характеристиками, который разработала компания Borland. Первая версия продукта явилась результатом разработки, которая велась компанией в обстановке строжайшей секретности в течение двух с половиной лет.

Delphi — это интегрированная среда разработки (IDE), предназначенная для создания программных приложений на языке программирования Object Pascal. Она обладает рядом особенностей, которые делают ее привлекательным инструментом для разработчиков.

Одной из ключевых особенностей Delphi является высокопроизводительный компилятор, способный преобразовывать исходный код в машинный код. Это обеспечивает высокую производительность и эффективность работы приложений, особенно в архитектуре «клиент-сервер».

Delphi также предлагает объектно-ориентированную модель компонент, которая позволяет разработчикам строить приложения из готовых компонентов. Это упрощает и ускоряет процесс разработки, так как разработчику необходимо только выбрать нужные компоненты из палитры и настроить их свойства и события. Это дает возможность создавать приложения на Delphi быстро и эффективно.

Еще одним преимуществом Delphi является визуальное построение приложений. С помощью Delphi разработчик может создавать пользовательский интерфейс приложения, перемещаться по данным и представлять их в нужном виде. Это делает процесс разработки более интуитивным и удобным, а также позволяет видеть результаты своей работы до компиляции.

Delphi также предоставляет масштабируемые средства для построения баз данных. Разработчики могут использовать Delphi для создания и управления базами данных, а также для выполнения запросов и обработки данных. Это обеспечивает гибкость и эффективность работы с данными в приложениях.

Одной из особенностей Delphi является быстрая разработка приложений без необходимости писать вставки на Си или ручного написания кода. Delphi предлагает широкий набор готовых компонентов, которые можно использовать для создания приложений без необходимости писать код с нуля. Это упрощает и ускоряет процесс разработки, позволяя разработчикам сосредоточиться на реализации функциональности приложения.

В целом, Delphi — это мощная и эффективная среда разработки, которая предлагает разработчикам широкий набор инструментов и функций для создания высокопроизводительных приложений. Она обладает удобным интерфейсом, визуальными возможностями и поддержкой объектно-ориентированного программирования, что делает ее привлекательным выбором для разработчиков.

3. Рабочая часть

3.1 Модель (метод) решения задачи

Концептуальная модель проекта предусматривает работу с файлами MP3, находящимися на компьютере пользователя или на других устройствах. Для удобства работы с ними необходима определенная систематизация и организация, что реализуется в блоке «Сбор информации о системе», который также содержит методическое пособие для обеспечения подробной информацией о системе пользователя.

Объекты модели, такие как плеер, меню и окно справки, должны представляться структурированными системами, задача которых облегчить работу пользователя с приложением. Например, вывод справки должен содержать не только текст, но и ассоциативные, визуальные образы основных функций приложения, а каждый объект меню должен иметь удобную навигацию. Сервисные функции, такие как звуковые эффекты, должны содержать набор средств защиты.

Ниже приведена блок-схема главного модуля программы:

Блок-схема главного модуля

3.2 Описание алгоритма решения задачи

Алгоритмом работы приложения предусмотрено чтение MP3 файлов и передача их на проигрывание. В списке воспроизведения содержится информация о песнях, которая автоматически обновляется при добавлении новых файлов. Пользователь может регулировать громкость звука и использовать различные звуковые эффекты. Есть также возможность установить временной ползунок для проигрывания песни с нужного момента, а продолжительность трека отображается в окне со списком песен.

Аудиоэффекты в программе разделены следующим образом:

  • Distortion — 5 ползунков;
  • Chorus — 5 ползунков;
  • Flanger — 5 ползунков;
  • Equalizer — 3 ползунка;
  • Compressor — 1 ползунок;
  • Gargle — 1 ползунок;
  • Echo — включатель/выключатель;
  • Reverb — включатель/выключатель.

3.3 Описание программы

Разработанная программа позволяет проигрывать MP3 файлы и работать с ними при помощи множества инструментов, таких как регулировка громкости звука, использование звуковых эффектов и установка временного ползунка. Для удобства и эффективности работы приложения, информация о песнях систематизирована и структурирована, что облегчает поиск и добавление новых треков. Наличие многоканальных звуковых эффектов позволяет добиться замечательного качества звучания музыки.

Размер внешней памяти для хранения приложения составляет не более 2 МБайт, размер загрузочного файла — 728 Кбайт. Программа может быть запущена с любого носителя информации с помощью файла bass.dll. Она предназначена для проигрывания MP3 файлов и ее простота и удобство использования гарантируют успешное взаимодействие с пользователем.

Ниже приведена таблица спецификаций программного продукта:

Краткое название MP3 плеер
Версия 1.0
Разработчик Иван Иванов
Платформа Windows
Язык программирования C++

Наименование

Обозначение

Примечание

Mp3p.exe

Файл приложения

MP3P_.PAS

Файл программного модуля для формы 1

Определяет функциональность формы 1.

Mp3p.dof

Файл параметров проекта

Содержит текущие установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивы.

MP3P.RES

Файл ресурсов

Содержит пиктограммы, графические изображения

mp3p_.dcu

Объектный файл

для MP3P_.PAS

Откомпилированная версия MP3P_.PAS

Mp3p.cfg

Файл конфигураций

Главный конфигурационный файл, в котором находятся все настройки плеера

MP3P_.dfm

Файл формы 1

Содержит список свойств всех компонентов, включенных в форму 1

Mp3p.dpr

Файл проекта

Связывает все файлы, из которых состоит приложение.

Bass.dll

Библиотека динамической компоновки

Содержит настройки звукового соправождения

Bass.pas

Файл программного модуля для Bass.dll

Определяет функциональность Bass.dll

bass.dcu

Объектный файл для Bass.pas

Откомпилированная версия Bass.pas

SonStream.pas

Файл ресурсов SonStream

Определяет функциональность музыкальных эффектов

SonStream.dcu

Объектный файл для SonStream.pas

Откомпилированная версия SonStream.pas

Icon.ico

Иконка

Иконка приложения

FON.jpg

Изображение

Фон главной формы

Bt1.bmp

Изображение кнопки1

Prior Trak (предыдущий трек)

Bt2.bmp

Изображение кнопки2

Play/Stop (Воспроизвести/ Остановит)

Bt3.bmp

Изображение кнопки3

Naxt Trek (Следующий трек)

Bt4.bmp

Изображение кнопки4

Selekt Play List (Выбрать список (папку) воспроизведения

3.4 Руководство пользователю

Исполняемый файл программы называется Mp3p.exe. Запустив его,

пользователь увидит главное окно программы.

После запуска программы выходит основное и единственное окно, в котором предоставляется возможность добавить в список воспроизведения звуковый файлы, выбрать его и начать прослушивание.

Так же процесс проигрывания, можно остановить и возобновить.

Рисунок 5 . Главная форма программы

Дла начала воспроизведения необходимо добавить папку с MP3 файлами в Play List. Нажав кнопку на главной форме Selekt Play List или в пункте меню/открыть

Затем выделить файл, который нужно прослушать и двойным щелчком мыши или кнопкой Play воспроизвести его. Если нужно переключить на следующий или предыдущий трек, то эт о можно сделать клавишами Prior Trak и Naxt Trak или с помощью навигационных клавиш (стрелок) на клавиатуре.

Управление эффектами: поставить флажок на проти нужного эффекта и настроить его до нужного звучания.

Регулировка громкости: передвигать ползунок до нужной громкости.

4.ОТЛАДКА И СОПРОВОЖДЕНИЕ ПРОГРАММЫ

Контрольный пример предназначен для оценки правильности работы программы. В данном случае, контрольный пример предназначен для оценки корректности использования MP3 Player v1.0 и и его компоненитов.

Исходными данными являются файлы MP3.

В результате проверки выяснилось, что контрольные результаты совпадают с полученными. Вывод: программа работает правильно.

3. Тестирование в жизненном цикле программного обеспечения

Тестирование является одним из важнейших этапов жизненного цикла разработки программного обеспечения. Его целью является повышение качества программного продукта путем выявления и устранения ошибок, которые могут привести к ошибочному выполнению поставленных задач.

40% общего времени и более 40% общей стоимости разработки программного обеспечения расходуются на проверку и тестирование программы. Это свидетельствует о высокой значимости процесса тестирования и внимании, которое ему уделяют разработчики программного обеспечения, включая такие крупные компании, как Microsoft, Sun и IBM.

Следует обратить внимание на то, что процесс тестирования должен быть проведен не автором программы. Тестирование является деструктивным процессом, и автору будет сложно перепрограммироваться на такой вид работы после создания программы с использованием конструктивных решений. Психологические особенности мышления человека делают этот переход сложным и малоэффективным.

Описание предполагаемых значений должно составлять неотъемлемую часть тестового набора данных. Тщательное изучение результатов каждого теста позволяет обнаружить большинство ошибок на ранних стадиях испытаний.

Важно не только проверять, что программа делает то, для чего она предназначена, но и наличие нежелательного поведения, то есть проверять программу на возможность выполнения действий, запрещенных или непредусмотренных спецификацией.

Особое внимание должно быть уделено тестированию модулей, в которых обнаружено наибольшее количество ошибок. Они могут стать узким местом в работе программного обеспечения и потенциально содержать скрытые ошибки, которые могут серьезно повлиять на результаты работы программного продукта.

Тестирование программ является важной частью процесса отладки программного кода. Основная цель тестирования — выявление ошибок, а отладка — их локализация и исправление. Вопрос о завершении тестирования возникает, когда разрабатываемое программное обеспечение достигает необходимого уровня надежности для удовлетворения будущих пользователей.

На практике существуют два основных критерия для завершения тестирования:

  1. Истечение отведенного времени для тестирования по графику.
  2. Выполнение всех тестов без обнаружения ошибок.

Тестирование проводится на разных этапах разработки программного продукта. Первое тестирование происходит на этапе проектирования.

На этом этапе проверяется соответствие проекта требованиям, указанным в техническом задании. Также учитываются условия работы и данные, требования к аппаратным и программным ресурсам заказчика, а также выбранные инструментальные средства разработки.

При тестировании на стадии проектирования было установлено, что проектная документация соответствует требованиям технического задания. Все входные и выходные данные были учтены. Оценка требований к аппаратным ресурсам показала, что они не превышают указанных в техническом задании. Среда разработки также обладает достаточными возможностями и позволяет соблюсти временные рамки, оговоренные в техническом задании.

Следующее тестирование проводилось на стадии кодирования, где использовались статические методы тестирования. Один из таких методов — это метод Инспекции исходного текста. При просмотре кода программы не было обнаружено ошибок.

Среда разработки Borland delphi предлагает автоматическую проверку синтаксиса языка для статического тестирования программного кода. При обнаружении синтаксической ошибки выдается сообщение с указанием причины ошибки, а курсор устанавливается в место обнаружения ошибки. Ошибки можно разделить на три вида:

  1. Синтаксические ошибки, которые проверяются автоматически при помощи среды разработки.
  2. Логические ошибки, которые требуют более тщательного анализа кода.
  3. Пользовательские ошибки, которые могут возникнуть в результате неправильного использования программы.

В данной работе был проведен анализ проблем, связанных с ошибками в программировании на Delphi. Ошибки могут быть разделены на три категории: ошибки компиляции, ошибки периода выполнения и логические ошибки.

Ошибки компиляции возникают из-за ошибок в тексте кода, включая ошибки в синтаксисе. Они могут привести к невозможности компиляции и запуска программы. Ошибки периода выполнения возникают во время выполнения программы, когда Delphi обнаруживает недопустимые или невозможные действия операторов. Логические ошибки возникают, когда программа работает не так, как задумывалось разработчиком, и может выдавать неправильные результаты.

Для выявления поведения программы при проблемах с доступом к базам данных было проведено тестирование. Были созданы ситуации, когда базы данных отсутствовали или указывали на неправильные источники данных. Однако, статическое тестирование оказалось недостаточным, и было принято решение использовать отладку в среде разработки Delphi.

Delphi не может самостоятельно находить ошибки, но предоставляет инструментальные средства для анализа потока выполнения и изменения переменных и свойств в процессе выполнения операторов. Эти возможности значительно упростили локализацию и исправление ошибок.

В ходе тестирования был проведен анализ качества разработанного программного продукта. На основании этого анализа можно сделать вывод, что система прошла контроль показателей качества и может быть использована по назначению.

В результате выполнения работы была достигнута цель — разработка MP3 плеера с функцией регулировки громкости и наложением эффектов на звук. Это позволит пользователям наслаждаться музыкой с возможностью настройки звучания под свои предпочтения.

В заключение, проведенный анализ проблем программирования на Delphi и разработка MP3 плеера позволяют сделать вывод о выполнении поставленной задачи. Результаты работы показывают, что система прошла контроль качества и готова к использованию.

Цель данной курсовой работы заключалась в разработке и реализации мультимедиа проигрывателя MP3 Player v1.0. Для достижения этой цели были выполнены следующие задачи: создание удобного пользовательского интерфейса, реализация функционала прослушивания MP3 файлов, настройки звучания, изменения громкости, а также возможности добавления фоновой музыки во время работы.

В процессе выполнения работы были использованы различные источники информации. Одним из них был учебник «Основы программирования в Delphi 7» автора Н.Б. Культин, который предоставил базовые знания по программированию и языку Delphi.

Также были использованы материалы из интернет-университета информационных технологий, а именно статья «Языки логического программирования» автора В.С. Рублева, доступная по ссылке http://www.intuit.ru/department/expert/logicpr/. Этот источник дал возможность ознакомиться с основами логического программирования.

Дополнительные материалы были найдены на различных веб-сайтах, таких как http://delphi.support.uz, http://www.hostmake.ru/, http://www.softportal.com/software-4195-uchebnik-po-delphi-7-dlya-nachinayuschih.html и http://codingrus.ru. Эти ресурсы предоставили дополнительную информацию и руководства по программированию на Delphi.

Таким образом, с помощью полученных знаний и использования различных источников информации была разработана и реализована программа MP3 Player v1.0, которая позволяет прослушивать MP3 файлы, настраивать звучание, менять громкость и использовать фоновую музыку во время работы.

  • SpeedButton2: TSpeedButton;
  • SpeedButton3: TSpeedButton;
  • SpeedButton4: TSpeedButton;
  • Bibliotheque: TListBox;
  • MediaPlayer1: TMediaPlayer;
  • TrackBar1: TTrackBar;
  • Timer1: TTimer;
  • TpsS1: TLabel;
  • Image1: TImage;
  • MainMenu1: TMainMenu;
  • N1: TMenuItem;
  • N2: TMenuItem;
  • N4: TMenuItem;
  • N5: TMenuItem;
  • N6: TMenuItem;
  • zvuk: TLabel;
  • bevel5: TPanel;
  • bevel4: TPanel;
  • bevel3: TPanel;
  • bevel2: TPanel;
  • bevel1: TPanel;
  • bevel6: TPanel;
  • bevel7: TPanel;
  • bevel8: TPanel;
  • Distortion: TCheckBox;
  • Chorus: TCheckBox;
  • Flanger: TCheckBox;
  • Equaliseur: TCheckBox;
  • Compressor: TCheckBox;
  • Gargle: TCheckBox;
  • Echo: TCheckBox;
  • Reverb: TCheckBox;
  • tpsson1: TScrollBar;
  • DiGainS1: TTrackBar;
  • DiEdgeS1: TTrackBar;
  • DipeqcfreqS1: TTrackBar;
  • Diposteqbs1: TTrackBar;
  • DiprelowoffS1: TTrackBar;
  • cwets1: TTrackBar;
  • cdepts1: TTrackBar;
  • cfeeds1: TTrackBar;
  • cfreqs1: TTrackBar;
  • cdelays1: TTrackBar;
  • fwets1: TTrackBar;
  • fdepts1: TTrackBar;
  • ffeeds1: TTrackBar;
  • ffreqs1: TTrackBar;
  • fdelays1: TTrackBar;
  • paraEQLOW: TTrackBar;
  • paraEQMED: TTrackBar;
  • paraEQHIGH: TTrackBar;
  • FREQUENCES: TLabel;
  • LOW: TLabel;
  • MED: TLabel;
  • HIGH: TLabel;
  • compressorbar: TTrackBar;
  • N7: TMenuItem;
  • gadwratehzs1: TTrackBar;
  • OpenDialog1: TOpenDialog;
  • SaveDialog1: TSaveDialog;
  • N3: TMenuItem;
  • procedure FormCreate(Sender: TObject);
  • procedure BibliothequeClick(Sender: TObject);
  • procedure SpeedButton2Click(Sender: TObject);
  • procedure SpeedButton1Click(Sender: TObject);
  • procedure SpeedButton3Click(Sender: TObject);
  • procedure TrackBar1Change(Sender: TObject);
  • procedure Timer1Timer(Sender: TObject);
  • procedure SpeedButton4Click(Sender: TObject);
  • procedure ChorusClick(Sender: TObject);
  • procedure GadwRateHzS1Change(Sender: TObject);
  • procedure DistortionChange(Sender: TObject);
  • procedure FlangerChange(Sender: TObject);
  • procedure CompressorBarChange(Sender: TObject);
  • procedure EqualiseurClick(Sender: TObject);
  • procedure ParaEQHIGHChange(Sender: TObject);
  • procedure ParaEQMEDChange(Sender: TObject);
  • procedure ParaEQLOWChange(Sender: TObject);
  • procedure ReverbClick(Sender: TObject);
  • procedure DistortionClick(Sender: TObject);
  • procedure CompressorClick(Sender: TObject);
  • procedure EchoClick(Sender: TObject);
  • procedure GargleClick(Sender: TObject);
  • procedure TpsSon1Scroll(Sender: TObject;
  • ScrollCode: TScrollCode);
  • procedure ProgressBar1MouseDown(Sender: TObject;
  • Button: TMouseButton;
  • Shift: TShiftState;
  • X, Y: Integer);
  • procedure Play; // воспроизведение

procedure PlayList(Path: string);

  • procedure N2Click(Sender: TObject);
  • procedure N4Click(Sender: TObject);
  • procedure N6Click(Sender: TObject);
  • procedure FlangerClick(Sender: TObject);
  • procedure Effacer1Click(Sender: TObject);
  • procedure ChargeClick(Sender: TObject);
  • procedure EffacerClick(Sender: TObject);
  • procedure SauverClick(Sender: TObject);
  • procedure N7Click(Sender: TObject);
  • procedure tpsson1Change(Sender: TObject);
  • procedure N3Click(Sender: TObject);
  • procedure TpsS1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const

MAX_SON = 2;

  • DW_SHAPE_GARGLE = 1;
  • LWAVE_FORM_FLANGER = 1;
  • LWAVE_FORM_CHORUS = 1;
  • LPHASE_FLANGER =BASS_FX_PHASE_ZERO ;
  • LPHASE_CHORUS =BASS_FX_PHASE_ZERO ;

var

Form1: TForm1;

  • TabSon : array[1..MAX_SON]of TSonStream;
  • PATH :string;

implementation

{$R *.dfm}

procedure TForm1.SauverClick(Sender: TObject);

var

Bdd: TOpenDialog;

  • BddS: TSaveDialog;

begin

Bdd.FilterIndex:=1;

  • if(BddS.Execute)then Bibliotheque.Items.SaveToFile(BddS.FileName+’.dat’);
  • end;
  • procedure TForm1.EffacerClick(Sender: TObject);

begin

Bibliotheque.Clear;

  • end;
  • procedure TForm1.ChargeClick(Sender: TObject);

var

Bdd: TOpenDialog;

  • BddS: TSaveDialog;

begin

Bdd.FilterIndex:=2;

  • if(Bdd.Execute) then Bibliotheque.Items.LoadFromFile(Bdd.FileName);
  • end;
  • procedure TForm1.Effacer1Click(Sender: TObject);

begin

Bibliotheque.Items.Delete(Bibliotheque.ItemIndex);

  • end;
  • procedure TForm1.GadwRateHzS1Change(Sender: TObject);

begin

TabSon[1].

SetGargle(GadwRateHzS1.Position,DW_SHAPE_GARGLE);

  • end;
  • procedure TForm1.DistortionChange(Sender: TObject);

begin

TabSon[1].

SetDistortion(DiGainS1.Position,DiEdgeS1.Position,

DiPEqCFreqS1.Position,DiPostEqBS1.Position,DiPreLowOffS1.Position);

  • end;
  • procedure TForm1.FlangerChange(Sender: TObject);

begin

TabSon[1].

SetFlanger(FwetS1.Position,FDeptS1.Position,FFeedS1.Position,

FFreqS1.Position,LWAVE_FORM_FLANGER,FDelayS1.Position,LPHASE_FLANGER);

  • end;
  • procedure TForm1.CompressorBarChange(Sender: TObject);

begin

TabSon[1].

SetCompressor(CompressorBar.Position);

  • end;
  • procedure TForm1.EqualiseurClick(Sender: TObject);

begin

if Equaliseur.Checked = true then

begin

TabSon[1].

AppliquerParamEQLow;

  • TabSon[1].

AppliquerParamEQMed;

  • TabSon[1].

AppliquerParamEQHigh;

  • TabSon[1].

SetParamEQLow(ParaEQLOW.Position);

  • TabSon[1].

SetParamEQMed(ParaEQMED.Position);

  • TabSon[1].

SetParamEQHigh(ParaEQHIGH.Position);

end

else

begin

TabSon[1].

RetirerParamEQLow;

  • TabSon[1].

RetirerParamEQMed;

  • TabSon[1].

RetirerParamEQHigh;

  • end;
  • end;
  • procedure TForm1.ParaEQHIGHChange(Sender: TObject);

begin

TabSon[1].

SetParamEQHigh(ParaEQHIGH.Position);

  • end;
  • procedure TForm1.ParaEQMEDChange(Sender: TObject);

begin

TabSon[1].

SetParamEQMed(ParaEQMED.Position);

  • end;
  • procedure TForm1.ParaEQLOWChange(Sender: TObject);

begin

TabSon[1].

SetParamEQLow(ParaEQLOW.Position);

  • end;
  • procedure TForm1.ReverbClick(Sender: TObject);

begin

if Reverb.Checked = true then

TabSon[1].

AppliquerReverb

else

TabSon[1].

RetirerReverb;

  • end;
  • procedure TForm1.DistortionClick(Sender: TObject);

begin

if Distortion.Checked = true then

begin

TabSon[1].

AppliquerDistortion;

  • TabSon[1].

SetDistortion(DiGainS1.Position,DiEdgeS1.Position,

DiPEqCFreqS1.Position,DiPostEqBS1.Position,DiPreLowOffS1.Position);

end

else

TabSon[1].

RetirerDistortion;

  • end;
  • procedure tform1.TpsSon1Scroll(Sender: TObject;
  • ScrollCode: TScrollCode);
  • var ScrollPos: Integer;

begin

TabSon[1].

ChangerPosition(TpsSon1.Position);

  • end;
  • procedure TForm1.GargleClick(Sender: TObject);

begin

if Gargle.Checked = true then

begin

TabSon[1].

AppliquerGargle;

  • TabSon[1].

SetGargle(GadwRateHzS1.Position,DW_SHAPE_GARGLE);

end

else

TabSon[1].

RetirerGargle;

  • end;
  • procedure TForm1.EchoClick(Sender: TObject);

begin

if Echo.Checked = true then

TabSon[1].

AppliquerEcho

else

TabSon[1].

RetirerEcho;

  • end;
  • procedure TForm1.CompressorClick(Sender: TObject);

begin

if Compressor.Checked = true then

begin

TabSon[1].

AppliquerCompressor;

  • TabSon[1].

SetCompressor(CompressorBar.Position);

end

else

TabSon[1].

RetirerCompressor;

  • end;

var

SoundPath: string[255];

  • min,sec: integer;
  • volume: LongWord;
  • procedure TForm1.PlayList(Path: string);

var

lpBuf: PChar;

  • sWinDir: string[128];
  • SearchRec: TSearchRec;

begin

Bibliotheque.Clear;

  • if FindFirst(Path + ‘*.mp3’, faAnyFile, SearchRec) =0 then

begin

Bibliotheque.Items.Add(SearchRec.Name);

while (FindNext(SearchRec) = 0) do

Bibliotheque.Items.Add(SearchRec.Name);

  • end;
  • Bibliotheque.ItemIndex := 0;
  • end;
  • procedure TForm1.FormCreate(Sender: TObject);

var

num:boolean;

begin

num := True;

  • PATH := ExtractFilePath(Application.ExeName);
  • TabSon[1]:=TSonStream.Create;

{ Creation des max , min et position ini des trackbars des effets grace aux constantes

introduites dans la classe TSonStream }

FWetS1.Max:=trunc(TabSon[1].

GetMaxFlangerWetDryMix);

  • FDeptS1.Max:=trunc(TabSon[1].

GetMaxFlangerDepth);

  • FFeedS1.Max:=trunc(TabSon[1].

GetMaxFlangerFeedback);

  • FFreqS1.Max:=trunc(TabSon[1].

GetMaxFlangerFrquency);

  • FDelayS1.Max:=trunc(TabSon[1].

GetMaxFlangerDelay);

  • FWetS1.Min:=trunc(TabSon[1].

GetMinFlangerWetDryMix);

  • FDeptS1.Min:=trunc(TabSon[1].

GetMinFlangerDepth);

  • FFeedS1.Min:=trunc(TabSon[1].

GetMinFlangerFeedback);

  • FFreqS1.Min:=trunc(TabSon[1].

GetMinFlangerFrquency);

  • FDelayS1.Min:=trunc(TabSon[1].

GetMinFlangerDelay);

  • FWetS1.Position:=trunc(TabSon[1].

GetIniFlangerWetDryMix);

  • FDeptS1.Position:=trunc(TabSon[1].

GetIniFlangerDepth);

  • FFeedS1.Position:=trunc(TabSon[1].

GetIniFlangerFeedback);

  • FFreqS1.Position:=trunc(TabSon[1].

GetIniFlangerFrquency);

  • FDelayS1.Position:=trunc(TabSon[1].

GetIniFlangerDelay);

  • CWetS1.Max:=trunc(TabSon[1].

GetMaxChorusWetDryMix);

  • CDeptS1.Max:=trunc(TabSon[1].

GetMaxChorusDepth);

  • CFeedS1.Max:=trunc(TabSon[1].

GetMaxChorusFeedback);

  • CFreqS1.Max:=trunc(TabSon[1].

GetMaxChorusFrquency);

  • CDelayS1.Max:=trunc(TabSon[1].

GetMaxChorusDelay);

  • CWetS1.Min:=trunc(TabSon[1].

GetMinChorusWetDryMix);

  • CDeptS1.Min:=trunc(TabSon[1].

GetMinChorusDepth);

  • CFeedS1.Min:=trunc(TabSon[1].

GetMinChorusFeedback);

  • CFreqS1.Min:=trunc(TabSon[1].

GetMinChorusFrquency);

  • CDelayS1.Min:=trunc(TabSon[1].

GetMinChorusDelay);

  • CWetS1.Position:=trunc(TabSon[1].

GetIniChorusWetDryMix);

  • CDeptS1.Position:=trunc(TabSon[1].

GetIniChorusDepth);

  • CFeedS1.Position:=trunc(TabSon[1].

GetIniChorusFeedback);

  • CFreqS1.Position:=trunc(TabSon[1].

GetIniChorusFrquency);

  • CDelayS1.Position:=trunc(TabSon[1].

GetIniChorusDelay);

  • ParaEQLOW.Min:=trunc(TabSon[1].

GetMinParamEQGain);

  • ParaEQLOW.Max:=trunc(TabSon[1].

GetMaxParamEQGain);

  • ParaEQLOW.Position:=trunc(TabSon[1].

GetIniParamEQGain);

  • ParaEQMED.Min:=trunc(TabSon[1].

GetMinParamEQGain);

  • ParaEQMED.Max:=trunc(TabSon[1].

GetMaxParamEQGain);

  • ParaEQMED.Position:=trunc(TabSon[1].

GetIniParamEQGain);

  • ParaEQHIGH.Min:=trunc(TabSon[1].

GetMinParamEQGain);

  • ParaEQHIGH.Max:=trunc(TabSon[1].

GetMaxParamEQGain);

  • ParaEQHIGH.Position:=trunc(TabSon[1].

GetIniParamEQGain);

  • CompressorBar.Max:=trunc(TabSon[1].

GetMaxCompressorGain);

  • CompressorBar.Min:=trunc(TabSon[1].

GetMinCompressorGain);

  • CompressorBar.Position:=trunc(TabSon[1].

GetIniCompressorGain);

  • DiGainS1.Max:=trunc(TabSon[1].

GetMaxDistortionGain);

  • DiEdgeS1.Max:=trunc(TabSon[1].

GetMaxDistortionEdge);

  • DiPEqCFreqS1.Max:=trunc(TabSon[1].

GetMaxDistortionPostEqCenterFrequency);

  • DiPostEqBS1.Max:=trunc(TabSon[1].

GetMaxDistortionPostEqBandwith);

  • DiPreLowOffS1.Max:=trunc(TabSon[1].

GetMaxDistortionPreLowpassCutOff);

  • DiGainS1.Min:=trunc(TabSon[1].

GetMinDistortionGain);

  • DiEdgeS1.Min:=trunc(TabSon[1].

GetMinDistortionEdge);

  • DiPEqCFreqS1.Min:=trunc(TabSon[1].

GetMinDistortionPostEqCenterFrequency);

  • DiPostEqBS1.Min:=trunc(TabSon[1].

GetMinDistortionPostEqBandwith);

  • DiPreLowOffS1.Min:=trunc(TabSon[1].

GetMinDistortionPreLowpassCutOff);

  • DiGainS1.Position:=trunc(TabSon[1].

GetIniDistortionGain);

  • DiEdgeS1.Position:=trunc(TabSon[1].

GetIniDistortionEdge);

  • DiPEqCFreqS1.Position:=trunc(TabSon[1].

GetIniDistortionPostEqCenterFrequency);

  • DiPostEqBS1.Position:=trunc(TabSon[1].

GetIniDistortionPostEqBandwith);

  • DiPreLowOffS1.Position:=trunc(TabSon[1].

GetIniDistortionPreLowpassCutOff);

  • GadwRateHzS1.Max:=trunc(TabSon[1].

GetMaxGargleDwRateHz);

  • GadwRateHzS1.Min:=trunc(TabSon[1].

GetMinGargleDwRateHz);

  • GadwRateHzS1.Position:=trunc(TabSon[1].

GetIniGargleDwRateHz);

  • GadwRateHzS1.Frequency:=100;
  • PlayList(»);
  • Bibliotheque.ItemIndex := 0;
  • TrackBar1.Position := 7;
  • volume := (TrackBar1.Position — TrackBar1.Max+1)* 6500;
  • volume := volume + (volume shl 16);
  • waveOutSetVolume(WAVE_MAPPER,volume);
  • end;
  • procedure TForm1.BibliothequeClick(Sender: TObject);

begin

if not SpeedButton2.Down

then SpeedButton2.Down := True;

  • Play;
  • TabSon[1].

Charger(Bibliotheque.Items.Strings[Bibliotheque.itemIndex]);

  • TpsSon1.Max:=TabSon[1].

LongueurTotal;

  • Equaliseur.Checked:=false;
  • Flanger.Checked:=false;
  • Chorus.Checked:=false;
  • Distortion.Checked:=false;
  • Gargle.Checked:=false;
  • Echo.Checked:=false;
  • Reverb.Checked:=false;
  • Compressor.Checked:=false;
  • end;
  • procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

if SpeedButton2.Down then

Play

else

begin

MediaPlayer1.Stop;

  • Timer1.Enabled := False;
  • SpeedButton2.Down := False;
  • SPeedButton2.Hint := ‘Play’;
  • end;
  • end;

// кнопка К предыдущей

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

if Bibliotheque.ItemIndex > 0 then

Bibliotheque.ItemIndex := Bibliotheque.ItemIndex — 1;

  • Play;
  • end;

// кнопка К следующей

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

if Bibliotheque.ItemIndex < Bibliotheque.Count then

Bibliotheque.ItemIndex := Bibliotheque.ItemIndex + 1;

  • Play;
  • end;
  • procedure TForm1.TrackBar1Change(Sender: TObject);

begin

volume := 6500* (TrackBar1.Max — TrackBar1.Position);

  • volume := volume + (volume shl 16);
  • waveOutSetVolume(WAVE_MAPPER,volume);
  • end;

// воспроизвести композицию,

// название которой выделено

// в списке ListBox1

procedure TForm1.Play;

begin

Timer1.Enabled := False;

  • MediaPlayer1.FileName := SoundPath + Bibliotheque.Items[Bibliotheque.itemIndex];

try

Mediaplayer1.Open;

except

on EMCIDeviceError do

begin

ShowMessage(‘Ошибка обращения к файлу ‘+

Bibliotheque.Items[Bibliotheque.itemIndex]);

  • SpeedButton2.Down := False;
  • exit;
  • end;
  • end;
  • MediaPlayer1.Play;
  • min :=0;
  • sec :=0;
  • Timer1.Enabled := True;
  • SpeedButton2.Hint := ‘Stop’;
  • end;
  • procedure TForm1.SpeedButton4Click(Sender: TObject);

var

Root: string;

  • pwRoot : PWideChar;
  • Dir: string;

begin

Root := »;

  • GetMem(pwRoot, (Length(Root)+1) * 2);
  • pwRoot := StringToWideChar(Root,pwRoot,MAX_PATH*2);

if not SelectDirectory(‘Выберите папку’, pwRoot, Dir)

then Dir :=»

else Dir := Dir+’\’;

  • SoundPath := Dir;
  • PlayList(SoundPath);
  • end;
  • procedure TForm1.N2Click(Sender: TObject);
  • var Root:string;
  • pwroot:pwidechar;
  • dir:string;

begin

root:=»;

  • getmem(pwroot,(length(root)+1)*2);
  • pwroot:=stringtowidechar(root,pwroot,max_path*2);

if not selectdirectory(‘выберите папку’,pwroot,dir)

then dir:=»

else Dir:=dir+’\’;

  • soundpath:=dir;
  • playlist(soundpath);
  • end;
  • procedure TForm1.N4Click(Sender: TObject);

begin

close;

  • end;
  • procedure TForm1.N6Click(Sender: TObject);

begin

showmessage (‘Перед проигрыванием добавьте папку с mp3 файлами в Play List, после этого программа будет работать корректно!’);

  • end;
  • procedure TForm1.FlangerClick(Sender: TObject);

begin

if Flanger.Checked = true then

begin

TabSon[1].

AppliquerFlanger;

  • TabSon[1].

SetFlanger(FwetS1.Position,FDeptS1.Position,FFeedS1.Position,

FFreqS1.Position,LWAVE_FORM_FLANGER,FDelayS1.Position,LPHASE_FLANGER);

end

else

TabSon[1].

RetirerFlanger;

  • end;
  • procedure TForm1.ChorusClick(Sender: TObject);

begin

if Chorus.Checked = true then

begin

TabSon[1].

AppliquerChorus ;

  • TabSon[1].

SetChorus( CWetS1.Position,CDeptS1.Position,CFeedS1.Position,

CFreqS1.Position,LWAVE_FORM_CHORUS,CDelayS1.Position,LPHASE_CHORUS);

end

else

TabSon[1].

RetirerChorus;

  • end;
  • procedure TForm1.N7Click(Sender: TObject);

begin

close;

  • end;
  • procedure TForm1.tpsson1Change(Sender: TObject);

var

num: boolean;

begin

if num then TpsS1.Caption:= inttostr(tpsson1.Position);

  • end;
  • procedure TForm1.N3Click(Sender: TObject);

begin

showmessage (‘О пограмме. MP3 Player v1.0. Автор: Спудис Александра, срудентка 3 курса группы АСУ-08-9’);

  • end;
  • procedure TForm1.TpsS1Click(Sender: TObject);

begin

TpsSon1.Position:=TabSon[1].

PositionEnCours;

  • if(TabSon[1].

GetNom<>»)then TpsS1.Caption:=Format(‘Total time (in s): %f, current time: %f’,

[TabSon[1].

GetTempsTotal,TabSon[1].

GetTempsEnCours]);

  • end;
  • procedure TForm1.Timer1Timer(Sender: TObject);

begin

// изменить счетчик времени

if sec < 59

then inc(sec)

else begin

sec :=0;

  • inc(min);
  • end;
  • TpsS1.Caption := IntToStr(min)+’:’;
  • if sec < 10

then TpsS1.Caption :=

TpsS1.Caption +’0’+ IntToStr(sec)

else TpsS1.Caption :=

TpsS1.Caption + IntToStr(sec);

  • if MediaPlayer1.Position < MediaPlayer1.Length

then exit;

  • Timer1.Enabled := False;
  • MediaPlayer1.Stop;
  • if Bibliotheque.ItemIndex < Bibliotheque.Count

then begin

Bibliotheque.ItemIndex := Bibliotheque.ItemIndex + 1;

  • Play;
  • end ;
  • end;
  • procedure TForm1.ProgressBar1MouseDown(Sender: TObject;
  • Button: TMouseButton;
  • Shift: TShiftState;
  • X, Y: Integer);

begin

TabSon[1].

ChangerPosition(X);

  • end;
  • end.