WAV MP3 Player

Програма Встигнути за 60 секунд демонструє використання компонента MediaPlayer для відтворення звуку у форматі MP3 та WAV. Мелодія відтворюється “по колу”, доти, доки користувач не вгадає число або не спливе час, відведений на розв’язання задачі.

Код написання програми

#include vcl.h
#pragma hdrstop
#include ctime
#include cstdlib
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int pw; // "секретне" число
int rem = 60; // залишок часу на виконання завдання
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TSearchRec sr;
if ( FindFirst("*.mp3",faAnyFile , sr) == 0)
{
MediaPlayer1->FileName = sr.Name;
MediaPlayer1->Open();
MediaPlayer1->Play();
}
Randomize();
pw = rand()%9;
}
void __fastcall TForm1::isRight(void)
{
if ( StrToInt(Edit1->Text) == pw )
{
Timer1->Enabled = false;
Button1->Enabled = false;
Edit1->Enabled = false;
MediaPlayer1->Stop();
// оплески!
PlaySound("App-29.wav", 0, SND_ASYNC);
ShowMessage("Вітаю! \nВи вгадали число за " +
IntToStr(60 - rem)+ " сек");
}
}
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if ( ( Edit1->Text.Length() < 1) &&
( (Key >= '0') && (Key <= '9')) )
return;
if ( Key == VK_RETURN)
{
isRight();
return;
}
if ( Key == VK_BACK) return;
Key=0;
}
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if ( Edit1->Text.Length() == 1)
Button1->Enabled = true;
else
Button1->Enabled = false;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
isRight();
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
rem--;
Label4->Caption = IntToStr(rem);
if (rem == 0 )
{
// час, відведений на розв'язання задачі, минув
Timer1->Enabled = false;
Edit1->Enabled = false;
Button1->Enabled = false;
MediaPlayer1->Stop();
ShowMessage("На жаль, Ви не впоралися з "
"поставленим завданням\п"
"\"Секретне\" число - " + IntToStr(pw) );
}
}
void __fastcall TForm1::MediaPlayer1Notify(TObject *Sender)
{
if (Timer1->Enabled)
MediaPlayer1->Play();
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Timer1->Enabled=false ;
MediaPlayer1->Stop();
MediaPlayer1->Close();
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *