- •Хід роботи
- •Створити форму як діалогове вікно програми "Звуки Windows" (рисунок 1).
- •Задати властивості компонента MediaPlayer1
- •Запрограмувати подію OnCreate для форми
- •6. Запрограмувати подію OnCreate для форми
- •7. Запрограмувати подію Notify для зміни стану плеєра
- •8. Запрограмувати натиснення на кнопку Play/Stop
- •9. Запрограмувати виведення в полі Label1 інформацію про поточний трек
6. Запрограмувати подію OnCreate для форми
void __fastcall TForml::FormCreate(TObject *Sender)
{ Buttonl->Caption = PLAY;
Button2->Caption = PREVIOUS;
Button3->Caption = NEXT;
MediaPlayer->Notify = true; // дозволити подію Notify }
7. Запрограмувати подію Notify для зміни стану плеєра
void __fastcall.TForml::MediaPlayerNotifу(TObject *Sender)
{
switch ( MediaPlayer->Mode)
{case mpOpen: // користувач відкрив дисковод (
Buttonl->Enabled = false;
Button1->Caption = PLAY;
Button1->Tag = 0;
Button2->Enabled = false;
Button3->Enabled = false;
Label2->Caption = "00:00";
//по сигналу від таймера будемо перевіряти стан дисковода
Timer->Enabled = True; }
}
MediaPlayer->Notify = true;
}
8. Запрограмувати натиснення на кнопку Play/Stop
void _fastcall TForml::ButtonlClick(TObject *Sender)
{ if ( Buttonl-XTag = 0) {
MediaPlayer->Play();
Buttonl->Caption = STOP;
Buttonl->Hint = "Стоп";
Buttonl->Tag = 1;
Button3->Enabled = true;
MediaPlayer->Notify = true;
Timer->Enabled = true;
Tracklnfо();
} else {
Buttonl->Caption = PLAY;
Buttonl->Hint = "Відтворення";
Buttonl->Tag = 0;
MediaPlayer->Notify = true;
MediaPlayer->Stop();
Timer->Enabled = false; } }
9. Запрограмувати виведення в полі Label1 інформацію про поточний трек
void __fastcall TForml::TrackInfo()
{ int ms;
AnsiString st;
Track = MCI_TMSF_TRACK(MediaPlayer->Position);
MediaPlayer->TimeFormat = tfMilliseconds;
ms = MediaPlayer-XTrackLength[Track];
MediaPlayer->TimeFormat = tfTMSF;
st = "Трек "+ IntToStr(Track);
st = st + ". Длительность "+ IntToStr(MINUTE(ms));
st = st + ":" + IntToStr(SECOND(ms));
Label1->Caption = st; }
10. Запрограмувати кнопку «Наступний трек»
void__fastcall TForml::Button3Click(TObject *Sender)
{ MediaPlayer->Next();
// якщо перейшли до останнього треку, то кнопку Next зробити недоступною
if ( MCI_TMSF_TRACK(MediaPlayer->Position) == MediaPlayer->Tracks)
Button3->Enabled = false;
if (! Button2->Enabled) Button2->Enabled = true;
Tracklnfо();
Label2->Caption = "0:00";
}
11. Запрограмувати кнопку «Попередній трек»
void__fastcall TForml::Button2Click(TObject *Sender)
{
MediaPlayer->Previous(); // на початок поточного треку
MediaPlayer->Previous(); // на початок попереднього треку
if ( MCI_TMSF_TRACK(MediaPlayer->Position) == 1)
Button2->Enabled = false;
if ( ! Button3->Enabled) Button3->Enabled = true;
Tracklnfо();
Label2->Caption = "0:00"; }
12. Запрограмувати закриття прогрми та зупинки плеєра
void __fastcall TForml::FormClose(TObject *Sender, TCloseAction SAction)
{ MediaPlayer->Stop();
MediaPlayer->Close(); }
13. Розглянути вигляд вікна програми після її запуску ( рис. 3).


Рис. 3. Вигляд вікна під час виконання програми
14. Запустити програму на виконання, протестувати її та продемонструвати результат викладачу.
Контрольні запитання
-
Яка властивість компоненту MediaPlayer задає тип пристрою?
-
Яка ознака відповідає за автоматичне завантаження після запуску програми файлу відеоролика або звукового фрагмента?
-
Яка властивість компоненту MediaPlayer дозволяє зробити невидимими деякі кнопки?
-
Які властивості компоненту MediaPlayer доступні під час роботи програми?
-
Для чого використовується властивість Display компоненти MediaPlayer?
