Создание музыкального проигрывателя средствами С++

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

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 27.03.2012
Размер файла 128,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Лабораторная работа №8

Аудио проигрыватель

Выполнил:

Студент группы ДС 71

Грабовый Александр

2009

Поставим на форму следующие компоненты:

MainMenu (Закладка Standard)

PopupMenu (Закладка Standard)

ListBox (Закладка Standard)

Panel (Закладка Standard)

Label (Закладка Standard) - поместим на форму 6 штук

MediaPlayer (Закладка System)

Timer (Закладка System) - 2 штуки

OpenDialog (Закладка Dialogs)

TrackBar (Закладка Win32)

Для упрощения программы опцию Name для всех элементов оставляем стандартной (в редких случаях я ее все-таки менял для сокращения).

MainMenu

Этот не визуальный компонент используется для создания главного меню на форме.

Создадим закладку File (Caption = &File), а в ней 2 кнопки: Add (Caption = &Add) и Exit (Caption = &Exit). Это можно сделать перейдя в опцию Items.

Add будет добавлять в список воспроизведения музыкальный файл. Код для этой кнопки пропишем позже.

Выход из программы будет осуществлятся при нажатии клавиши Exit.

PopupMenu

Это не визуальный компонент, который используется для создания контекстного меню.

Переходим в опцию Items и добавляем 3 элемента:

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

Delete - будет удалять из списка воспроизведения выделенный файл.

Review

Для этого элемента выставим:

Checked = true

Name = Rew

Этот элемент будет определять повторение воспроизведения. Повторение возможно если элемент отмечен.

Для формы выставим опцию

PopupMenu = PopupMenu1

ListBox

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

Выставим следующие опции:

ShowHint = true

Hint = PlayList

Теперь, когда мы наведем курсор на ListBox в работающей программе, будет появляться надпись «PlayList».

Выставим для ListBox опцию

PopupMenu = PopupMenu1

Panel and Labels

Ставим метки в следующей последовательности и выставляем для них

Caption:

(Label2) Caption = Сейчас проигрывается:

(Label3) Caption =

(Label4) Caption = Продолжительность:

(Label1) Caption =

(Label5) Caption = Времени осталось:

(Label6) Caption =

Порядок меток у меня не совпал из-за многих перестановок в программе и т.п. Чтобы не переделывать код я не стал их сортировать.

MediaPlayer

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

MediaPlayer1->Play();

MediaPlayer1->Pause();

MediaPlayer1->Stop();

И т.п.

В этой работе нам понадобятся только 3. Будем использовать стандартные клавиши. Выставим следующие опции:

Переходим в Visible Buttons:

btPlay = true

btPause = true

btStop = true

все остальные в false

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

Timers

Timer - не визуальный компонент основной опцией которого является interval. А действие OnTimer которое определяет действие по истечению времени равного заданному в interval (время задается в миллисекундах)

Ставим для обеих таймеров опции:

Enabled = false

Interval = 1000

OpenDialog

Это не визуальный компонент, который вызывает стандартное окно windows для открытия файлов.

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

TrackBar

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

Выставим следующие опции для него:

Orientation = trVertical

Max = 0

Min = -65535

ThumbLength = 10

TickMarks = tmBoth

Frequency = 8192

ShowHint = true

Hint = Volume

Готовая форма будет иметь вид:

меню файл воспроизведение плеер аудио

Теперь пропишем код на действия элементов:

Для начала огласим переменные:

int index, key, ms, ms1, t=0;

так же создадим функцию для регуляции громкости:

union TVolume {

unsigned long Volume;

struct

{

Word Left;

Word Right;

};

} volume;

MainMenu

Для кнопки Add ставим действие OnClick и прописываем туда код:

// ----- добавление в список

if (OpenDialog1->Execute())

{

ListBox1->Items->Add(OpenDialog1->FileName);

if (ListBox1->Items->Count==1){

MediaPlayer1->FileName=ListBox1->Items->Strings[0];

MediaPlayer1->Notify=true; }

Для кнопки Exit на действие OnClick пишем:

Close();

PopupMenu

Add OnClick:

// ----- добавление в список

if (OpenDialog1->Execute())

{

ListBox1->Items->Add(OpenDialog1->FileName);

if (ListBox1->Items->Count==1){

MediaPlayer1->FileName=ListBox1->Items->Strings[0];

MediaPlayer1->Notify=true; }

Delete OnClick:

ListBox1->Items->Delete(ListBox1->ItemIndex);

Review OnClick:

if (Form1->Rew->Checked==true)

Form1->Rew->Checked=false;

else

Form1->Rew->Checked=true;

ListBox

Действие OnDblClick:

index = ListBox1->ItemIndex;

MediaPlayer1->Stop();

MediaPlayer1->FileName=ListBox1->Items->Strings[index];

MediaPlayer1->Open();

MediaPlayer1->Notify=true;

MediaPlayer1->Play();

// это действие обеспечит нам проигрывание файла по двойному клику на нем.

MediaPlayer

Действие OnClick:

key = 0;

// ------считываем со списка

if (ListBox1->ItemIndex<0)

index = 0;

else

index = ListBox1->ItemIndex;

MediaPlayer1->FileName=ListBox1->Items->Strings[index];

MediaPlayer1->Open();

MediaPlayer1->Notify=true;

// ---------ПОКАЗ ВРЕМЕНИ ПРОИГРЫВАЕМОГО ФАЙЛА

MediaPlayer1->TimeFormat=tfMilliseconds;

ms= MediaPlayer1->Length;

Label1->Caption=IntToStr((ms/1000)/60)+ " мин." +

" " + IntToStr((ms/1000) %60) + " секунд";

Label3->Caption=ListBox1->Items->Strings[index];

// ---- переход на след. фаил по окончанию

Timer1->Interval=ms;

Timer1->Enabled=true;

Timer2->Enabled=true;

Timer1

Действие OnTimer:

MediaPlayer1->Stop();

if (index<ListBox1->Items->Count-1)

index=index+1;

else

{

if (Form1->Rew->Checked==true)

index=0;

else {

key =1;

Timer1->Enabled=false;

Timer2->Enabled=false;}

}

if (key !=1) {

MediaPlayer1->FileName=ListBox1->Items->Strings[index];

MediaPlayer1->Open();

MediaPlayer1->Notify=true;

MediaPlayer1->Play();

// -ПОКАЗ ВРЕМЕНИ ПРОИГРЫВАЕМОГО ФАЙЛА

MediaPlayer1->TimeFormat=tfMilliseconds;

ms= MediaPlayer1->Length;

Label1->Caption=IntToStr((ms/1000)/60)+ " мин." +

" " + IntToStr((ms/1000) %60) + " секунд";

Label3->Caption=ListBox1->Items->Strings[index];

// ---- переход на след. фаил по окончанию

Timer1->Interval=ms;

}

Timer2:

Действие OnTimer:

ms=ms-1000;

Label6->Caption=IntToStr(ms/1000/60)+ " мин." +

" " + IntToStr(ms/1000 %60) + " секунд";

TrackBar

Действие OnChange:

volume.Left= - TrackBar1->Position;

volume.Right= - TrackBar1->Position;

waveOutSetVolume(0, volume.Volume);

Полный код программы будет иметь вид:

//--

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "filectrl.hpp"

//-

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

int index, key, ms, ms1;

union TVolume {

unsigned long Volume;

struct

{

Word Left;

Word Right;

};

} volume;

//--

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//-

//--

void __fastcall TForm1::MediaPlayer1Click(TObject *Sender,

TMPBtnType Button, bool &DoDefault)

{

key = 0;

// ------считываем со списка

if (ListBox1->ItemIndex<0)

index = 0;

else

index = ListBox1->ItemIndex;

MediaPlayer1->FileName=ListBox1->Items->Strings[index];

MediaPlayer1->Open();

MediaPlayer1->Notify=true;

// --ПОКАЗ ВРЕМЕНИ ПРОИГРЫВАЕМОГО ФАЙЛА

MediaPlayer1->TimeFormat=tfMilliseconds;

ms= MediaPlayer1->Length;

Label1->Caption=IntToStr((ms/1000)/60)+ " мин." +

" " + IntToStr((ms/1000) %60) + " секунд";

Label3->Caption=ListBox1->Items->Strings[index];

// ---- переход на след. фаил по окончанию

Timer1->Interval=ms;

Timer1->Enabled=true;

Timer2->Enabled=true;

}

//-

//-

void __fastcall TForm1::Add1Click(TObject *Sender)

{

// ----- добавление в список

if (OpenDialog1->Execute())

{

ListBox1->Items->Add(OpenDialog1->FileName);

if (ListBox1->Items->Count==1){

MediaPlayer1->FileName=ListBox1->Items->Strings[0];

MediaPlayer1->Notify=true; }

}

}

//-

void __fastcall TForm1::Add2Click(TObject *Sender)

{

// - добавление в список

if (OpenDialog1->Execute())

{

ListBox1->Items->Add(OpenDialog1->FileName);

if (ListBox1->Items->Count==1)

{

MediaPlayer1->FileName=ListBox1->Items->Strings[0];

MediaPlayer1->Open();

MediaPlayer1->Notify=true;

}

}

}

//--

void __fastcall TForm1::Delete1Click(TObject *Sender)

{

ListBox1->Items->Delete(ListBox1->ItemIndex);

}

//-

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

MediaPlayer1->Stop();

if (index<ListBox1->Items->Count-1)

index=index+1;

else

{

if (Form1->Rew->Checked==true)

index=0;

else {

key =1;

Timer1->Enabled=false;

Timer2->Enabled=false;}

}

if (key !=1) {

MediaPlayer1->FileName=ListBox1->Items->Strings[index];

MediaPlayer1->Open();

MediaPlayer1->Notify=true;

MediaPlayer1->Play();

// -ПОКАЗ ВРЕМЕНИ ПРОИГРЫВАЕМОГО ФАЙЛА

MediaPlayer1->TimeFormat=tfMilliseconds;

ms= MediaPlayer1->Length;

Label1->Caption=IntToStr((ms/1000)/60)+ " мин." +

" " + IntToStr((ms/1000) %60) + " секунд";

Label3->Caption=ListBox1->Items->Strings[index];

// ---- переход на след. фаил по окончанию

Timer1->Interval=ms;

}

}

//-

void __fastcall TForm1::RewClick(TObject *Sender)

{

if (Form1->Rew->Checked==true)

Form1->Rew->Checked=false;

else

Form1->Rew->Checked=true;

}

//-

void __fastcall TForm1::Timer2Timer(TObject *Sender)

{

ms=ms-1000;

Label6->Caption=IntToStr(ms/1000/60)+ " мин." +

" " + IntToStr(ms/1000 %60) + " секунд";

}

//-

void __fastcall TForm1::Exit1Click(TObject *Sender)

{

Close();

}

//-

void __fastcall TForm1::ListBox1DblClick(TObject *Sender)

{

index = ListBox1->ItemIndex;

MediaPlayer1->Stop();

MediaPlayer1->FileName=ListBox1->Items->Strings[index];

MediaPlayer1->Open();

MediaPlayer1->Notify=true;

MediaPlayer1->Play();

// -ПОКАЗ ВРЕМЕНИ ПРОИГРЫВАЕМОГО ФАЙЛА

MediaPlayer1->TimeFormat=tfMilliseconds;

ms= MediaPlayer1->Length;

Label1->Caption=IntToStr((ms/1000)/60)+ " мин." +

" " + IntToStr((ms/1000) %60) + " секунд";

Label3->Caption=ListBox1->Items->Strings[index];

// - переход на след. фаил по окончанию

Timer1->Interval=ms;

Timer1->Enabled=true;

Timer2->Enabled=true;

}

void __fastcall TForm1::TrackBar1Change(TObject *Sender)

{

volume.Left= - TrackBar1->Position;

volume.Right= - TrackBar1->Position;

waveOutSetVolume(0, volume.Volume);

}

//-

Вид работающего проигрывателя:

НТУУ «КПИ»

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [1,1 M], добавлен 02.02.2014

  • Создание информационной мультимедиа системы (медиа-плеера) для презентации аудио-видео информации о факультете КТАС, представленной в специально отснятых и смонтированных avi-файлах. Разработка модуля пользовательского интерфейса, выходные данные.

    курсовая работа [41,5 K], добавлен 21.11.2014

  • Формат звукового файла wav, способ его кодирования. Реализация возможностей воспроизведения звука в среде программирования MATLAB. Составление функциональной схемы программы. Апробирование информационной технологии воспроизведения звуковых файлов.

    курсовая работа [1,2 M], добавлен 13.02.2016

  • Система управления базой данных - программный инструмент создания БД и приложений пользователя. Проект СУБД "ИС Продажа видео и аудио продукции". Разработка иерархической, сетевой и реляционной моделей, таблиц и схемы базы данных, форм, отчетов, запросов.

    курсовая работа [1,6 M], добавлен 17.06.2013

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

    курсовая работа [1,2 M], добавлен 02.07.2014

  • Оболочка Norton Commander. Командная строка программы. Работа с меню. Редактирование файлов. Параметры конфигурации. Структура файлов оболочки. Создание и настройка меню команд пользователя. Определение действий в зависимости от расширения имени файла.

    реферат [171,6 K], добавлен 17.06.2008

  • Разработка мультимедиа-программы для прослушивания аудио-файлов и просмотров видео. Описание меню для пользователей и для администраторов проекта. Создание форм для указанного приложения при помощи Visual Foxpro 9. Листинг программы и ее результаты.

    курсовая работа [1,9 M], добавлен 27.07.2013

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

    реферат [32,2 K], добавлен 03.10.2010

  • Создание оболочки для воспроизведения аудиофайлов. Аналитический обзор языков программирования, их сравнительные характеристики, описание предметной области и формата mp3. Алгоритм разработки инсталляционного пакета. Диаграмма деятельности объектов.

    курсовая работа [581,3 K], добавлен 30.01.2014

  • Характеристика программы Winamp — универсального проигрывателя от компании Nullsoft для воспроизведения файлов мультимедиа и потоковой передачи в среде Microsoft Windows. Описание интерфейса и настройка программы. Алгоритм создания музыкальной библиотеки.

    курсовая работа [1,5 M], добавлен 15.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.