Разработка приложения для Windows, представляющего собой MP3 плеер
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
разумевает под собой также проектирование методов наилучшего сохранения информации и методов дальнейшей ее обработки вплоть до формирования выходных данных.
После окончания проектирования программы, спроектированные данные были преобразованы в программный код (стадия создания).
На последней стадии универсального процесса разработки ПО - переходный период - происходило тестирование готового программного продукта.
На главной форме программы (см. рисунок 2) располагаются: главное меню, где располагаются кнопки управления - выбор каталога, пауза/воспроизведение, перемещение между треками. Тайминг воспроизведения трека. В центре располагается поле, где формируется список треков. Слева бегунок, обеспечивающий уровень громкости воспроизведения.
Исполняемый файл программы называется Mp3p.exe и для своей работы не требует никаких дополнительных файлов. Файлы проекта расположены в приложении Б.
Рисунок 2. Главное окно программы
При работе возникают задержки времени в следующих случаях:
1) При загрузке программы в оперативную память;
2) Задержки, связанные с открытием файлов данных в процессе работы программы;
3) При добавлении, просмотре, изменении записей.
Все остальное время при работе программы выделяется под нужды пользователя и дополнительные подгрузки информации с жесткого диска.
Данная программа не предоставляет возможностей по настройке графического интерфейса под определенного пользователя. Изменение фона окон программы находится под контролем операционной системы, установленной на ПЭВМ.
Настройки по обработке данных в программе также отсутствуют.
Разрабатываемый проект состоит из одного файла (модулей), описание которых приведено в Приложении А.
2.2 Текст программы
{ MP3 плееер с регулятором громкости.}mp3p_;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, ExtCtrls, MPlayer, ComCtrls,
, FileCtrl; // эти ссылки вставлены вручную
= class(TForm)
// кнопки: TSpeedButton; // Предыдущая композиция: TSpeedButton; // Воспроизведение/Стоп: TSpeedButton; // Следующая композиция: TSpeedButton; // Выбор папки
: TListBox; // Список композиций (mp3 файлов)
: TMediaPlayer; // медиа плеер
: TTrackBar; // регулятор громкости
: TTimer;: TLabel;: TLabel;
: TShape; // рамка вокруг кнопок
FormCreate(Sender: TObject);ListBox1Click(Sender: TObject);SpeedButton2Click(Sender: TObject);SpeedButton1Click(Sender: TObject);SpeedButton3Click(Sender: TObject);TrackBar1Change(Sender: TObject);Timer1Timer(Sender: TObject);SpeedButton4Click(Sender: TObject);
// эти объявления вставлены сюда вручнуюPlay; // воспроизведениеPlayList(Path: string); // формирует список MP3 файлов
{ Private declarations }
{ Public declarations };
: TForm1;
{$R *.dfm}: string[255];,sec: integer; // время воспроизведения: LongWord; // старшее слово - правый канал,
// младшее - левый.
// формирует список MP3 файловTForm1.PlayList(Path: string);: PChar; // указатель на nul-terminated строку: string[128]; // обычная Паскаль строка
: TSearchRec; // структура SearchRec содержит информацию
// о файле, удовлетворяющем условию поиска.Clear;
// сформировать список mp3 файловFindFirst(Path + *.mp3, faAnyFile, SearchRec) =0 then
// в каталоге есть файл с расширением WAV
// добавим имя этого файла в список.Items.Add(SearchRec.Name);
// пока в каталоге есть другие файлы с расширением WAV(FindNext(SearchRec) = 0) do.Items.Add(SearchRec.Name);;.ItemIndex := 0; ;
TForm1.FormCreate(Sender: TObject);();.ItemIndex := 0;.Caption:=ListBox1.Items[ListBox1.itemIndex];
.Position := 7;
// старшее слово переменной volume - правый канал,
// младшее - левый:= (TrackBar1.Position - TrackBar1.Max+1)* 6500;:= volume + (volume shl 16);(WAVE_MAPPER,volume); // уровень сигнала;
// щелчок на названии произведенияTForm1.ListBox1Click(Sender: TObject);
// вывести в поле метки Label1 имя выбранного файлаnot SpeedButton2.DownSpeedButton2.Down := True;.Caption:=ListBox1.Items[ListBox1.itemIndex];;;
// щелчок на кнопке ВоспроизведениеTForm1.SpeedButton2Click(Sender: TObject);SpeedButton2.Down then
// пользователь нажал кнопку
// начать воспроизведение
// если кнопка Воспроизведение нажата,
// то повторное нажатие останавливает
// воспроизведение.Stop;.Enabled := False;.Down := False;.Hint := Play;;;
0 then.ItemIndex := ListBox1.ItemIndex - 1;;;">// кнопка К предыдущейTForm1.SpeedButton1Click(Sender: TObject);ListBox1.ItemIndex > 0 then.ItemIndex := ListBox1.ItemIndex - 1;;;
// кнопка К следующейTForm1.SpeedButton3Click(Sender: TObject);ListBox1.ItemIndex < ListBox1.Count then.ItemIndex := ListBox1.ItemIndex + 1;;;
// пользователь изменил положение
// регулятора громкостиTForm1.TrackBar1Change(Sender: TObject);:= 6500* (TrackBar1.Max - TrackBar1.Position);:= volume + (volume shl 16);(WAVE_MAPPER,volume);;
// воспроизвести композицию,
// название которой выделено
// в списке ListBox1TForm1.Play;.Enabled := False;.Caption:=ListBox1.Items[ListBox1.itemIndex];.FileName := SoundPath + ListBox1.Items[ListBox1.itemIndex];
.Open;EMCIDeviceError do(Ошибка обращения к файлу +.Items[ListBox1.itemIndex]);.Down := False;;;;.Play;:=0;:=0;.Enabled := True;.Hint := Stop;;
// сигнал от таймераTForm1.Timer1Timer(Sender: TObject);
// изменить счетчик времениsec < 59inc(sec)begin:=0;(min);;
// вывести время воспроизведения.Caption := IntToStr(min)+:;sec < 10Label2.Caption :=.Caption +0+ IntToStr(sec)Label2.Caption :=.Caption + IntToStr(sec);
// если воспроизведение текущей композиции
// не завершеноMediaPlayer1.Position < MediaPlayer1.Lengthexit;
// воспроизведение текущей композиции
// закончено.Enabled := False; // остановить таймер.Stop; // остановить плеер
ListBox1.ItemIndex < ListBox1.Count // список не исчерпанbegin.ItemIndex := ListBox1.ItemIndex + 1;;;
// Щелчок на кнопке Папка
// Выбрать папку, в которой находятся MP3 файлыTForm1.SpeedButton4Click(Sender: TObject);: string; // корневой каталог: PWideChar;: string;:= ; // корневой каталог - папка Рабочий стол(pwRoot, (Length(Root)+1) * 2);:= StringToWideChar(Root,pwRoot,MAX_PATH*2);not SelectDirectory(Выберите папку, pwRoot, Dir)Dir :=Dir := Dir+\;
// каталог, в котором находятся MP3 файлы выбран:= Dir;(SoundPath);;
.