7-amaliy mashg’ulot Mavzu: C++ tilida multimedia va animatsiyalar




Download 0.85 Mb.
bet1/2
Sana31.05.2023
Hajmi0.85 Mb.
#68107
  1   2
Bog'liq
7-Amaliy mashg\'ulot
Masofaviy ta’lim usullari va texnologiyalari. “O’quv jarayonida masofaviy texnologiyalarni qo’llash.Masofaviy ta’lim tizimlari va texnologiyalar, 5f042dfc86b9b, AZOT xossalari, Atmosfera havosini muhofaza qilish, 1-mavzu, Umumiy fizikadan masalalr tuplami. S. R. Polvonov., 1. Jismlarning erkin tushishi va erkin tushish tezlanishi deb ni, “Tokning magnit maydoni ” mavzusini o’qitishda innavatsion ta’lim texnalogiyalaridan foydalanish metodikasi, inflatsiya riski, 123, 1, Axborot exnalogiyalarining zamonaviy dasturiy ta, C tilida dasturlash, kurs ishi, Milliy va harakatli o`yinlar

7-amaliy mashg’ulot
Mavzu: C++ tilida multimedia va animatsiyalar

C++ Builder 6 dasturi ishga tushiramiz va File menyusidan New bo‘limiga o‘tib yangi application yaratamiz



C++ builder formaning umumiy korinishi
Endi biz dasturni kerakli joyga saqlab qo‘yamiz, va dasturga kerakli komponentalarni joylashtiramiz.
Avvalombor biz, komponentalar palitrasidan Systemni tanlaymiz va u yerdan MediaPlayer komponentasini tanlab, dasturga joylashtiramiz.

Win 32 dagi MediaPlayer komponentasi

Formaga ListBox va Panel tashlangan holat
Shundang so‘ng, komponentalar politasidan Dialogsga kirib OpenDialog va SaveDialog komponentalarini dasturga tashlaymiz.

Formaga SaveDialog va OpenDialog tashlangan holat
OpenDialogni va SaveDialogni Filter xususiyatini sozlaymiz. Buning uchun biz OpenDialogini Filteriga Filter Name = All ni Filter = *.* ni qo‘shamiz
Biz MediaPlayer dasturimizga kerak bo‘ladigan ovoz sozlash va positsion yurgichlarni o‘rnatamiz. Buning uchun bizga Win32 komponentalar politrasidagi Trackbar ni formamizga tashlaymiz.
Shundang so‘ng formamizda tashlangan Trackbarlarni kerakli ko‘rinishga ketltiramiz. Birinchi trackbar pozitsiya uchun ikkinchisi ovoz uchun kerak bo‘ladi.
Ovoz uchun atalagan Trackbar quyidagi kodni kiritamiz.
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
TrackBar1->Max=65350;
waveOutSetVolume(0,MAKELONG(TrackBar1->Position, TrackBar1->Position));
}
Pozitsiya uchun atalgan Trackbar uchun quyidagicha :
void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
{
ScrollBar1->Position=MediaPlayer1->Position;
}
void __fastcall TForm1::ScrollBar1Scroll(TObject *Sender,
TScrollCode ScrollCode, int &ScrollPos)
{
MediaPlayer1->Position=ScrollBar1->Position;
MediaPlayer1->Play();
} Formamizga Standart komponentlar politrasidan TMainMenu va TPopupMenu larni tashlaymiz. TmainMenu dasturimizning asosiy menyusi hisoblanadi. Qolgan menyular esa yordamchi menyu sifatida ishlatiladi.
TmainMenu menyusiga kerakli bo‘limlarni kiritamiz va har bir bo‘limga kodlar yozamiz.
void __fastcall Tform1::Ochish1Click(Tobject *Sender)
{
if(OpenDialog1->Execute())
{
MediaPlayer1->FileName=OpenDialog1->FileName;
MediaPlayer1->Open();
if(MediaPlayer1->Enabled==false)
{
Timer1->Enabled=true;
}
ScrollBar1->Max=MediaPlayer1->Length;
MediaPlayer1->Play();
ListBox1->Items->Add(ExtractFileName(OpenDialog1->FileName));
}
}
void __fastcall Tform1::Yopish1Click(Tobject *Sender)
{
MediaPlayer1->Close();
}
void __fastcall Tform1::Chiqish1Click(Tobject *Sender)
{
Form1->Close();
}
void __fastcall Tform1::Qollanma1Click(Tobject *Sender)
{
Form3->ShowModal();
}
void __fastcall Tform1::Dasturhaqida1Click(Tobject *Sender)
{
Form2->ShowModal();
}
Asosiy menyumizni yaratib bo‘lganimizdan keyin formamizga Timer va TrayIcon komponentalarini tashlaymiz va Timerimizga kerakli kodlarni kiritamiz.
Timerimiz joriy faylni o‘tayotgan vaqtini va fayl positsiyasini ko‘rsatishi uchun quyidagi kodlarni Timerning ichiga kiritamiz.
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
ScrollBar1->Position=MediaPlayer1->Position;
if(MediaPlayer1->Mode==mpPlaying)
{ long time = MediaPlayer1->Position;
long mm = time / 60000;
time -= mm * 60000;
long ss = time / 1000;
long ms10 = (time - ss*1000)/10;
char buff[20];
sprintf( buff, "%0.2d:%0.2d.%0.2d", mm, ss, ms10 );
Label1->Caption = buff;
}
}
Fayllarni boshqarish uchun formamizga bir nechta SpeedButton larni tashlaymiz va ularga rasm qo‘yamiz, panellar rangini ham kerakli rangga o‘zgartiramiz.
Formamizga tashlangan SpeedButtonlarni kerakli kodlarni kiritamiz.Birinchi navbatda ‗oldingi‘ ma‘nosini anglatuvchi tugmamizga kod yozamiz.
void __fastcall TForm1::oldingiClick(TObject *Sender)
{
int oldingi = ListBox1->ItemIndex;
if(oldingi==0)
{
oldingi=ListBox1->Count;
}
oldingi--;
MediaPlayer1-> FileName=ListBox1-> Items-> Strings[oldingi] ;
MediaPlayer1->Open();
MediaPlayer1->Play();
ListBox1->ItemIndex=oldingi; }
Pausa tugmasiga quyidagi kodni kiritamiz
void __fastcall TForm1::boshlaClick(TObject *Sender)
{
MediaPlayer1->Pause();
}
Keyingi tugamaning formadagi ko’rinishi
void __fastcall TForm1::keyingiClick(TObject *Sender)
{
Timer1->Enabled=True;
int keyingi = ListBox1->ItemIndex;
if(keyingi==ListBox1->Count-1)
{
keyingi=-1;
}
keyingi++;
MediaPlayer1-> FileName=ListBox1-> Items-> Strings[keyingi] ;
MediaPlayer1->Open();
MediaPlayer1->Play();
ListBox1->ItemIndex=keyingi;
}
Ochish tugmasini formadagi ko’rinishi
void __fastcall TForm1::ochishClick(TObject *Sender)
{
if(OpenDialog1->Execute())
{
OpenDialog1->Title="Medaifaylni tanlang";
MediaPlayer1->FileName=OpenDialog1->FileName;
MediaPlayer1->Open();
Timer1->Enabled=true;
ScrollBar1->Max=MediaPlayer1->Length;
MediaPlayer1->Play();
ListBox1->Items->Add(ExtractFileName(OpenDialog1->FileName));
}
}
Dasturimizda tayyor playlistlar uchun maxsus menyu yaratamiz. Bu menyu joriy ro‘yhatdagi qo‘shiqlarni playlist qilib saqlash va ularni o‘qish uchun xizmat qilidi. Bu playlistni Listboxga biriktirib qo‘yamiz.
ListBoxning shaxsiy menyusi
Maxsus playlist kodlari :
void __fastcall TForm1::MusiqiyPlaylist1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
ListBox1->Items->LoadFromFile(OpenDialog1->FileName);
}
}
void __fastcall TForm1::Mavjudplaylistnisaqlash1Click(TObject *Sender)
{
if(SaveDialog1->Execute())
{
ListBox1->Items->SaveToFile(SaveDialog1->FileName);
}
}
Dasturimiz videofayllarni namoyish eta olishi uchun forma markazidagi panelni ekran sifatida ishlatamiz. Buning uchun MediaPlayermizni Display xususiyatiga markaziy panel nomini belgilaymiz. Panel ekran sifatida ajralib turishi uchun BevelWidth xususiyatiga biror son yozib qo‘yamiz. Masalan, BevelWidth = 10.

Download 0.85 Mb.
  1   2




Download 0.85 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



7-amaliy mashg’ulot Mavzu: C++ tilida multimedia va animatsiyalar

Download 0.85 Mb.