|
Ovozli fayllar bilan ishlash
|
bet | 15/17 | Sana | 18.05.2024 | Hajmi | 0,95 Mb. | | #242188 |
Bog'liq I bob c builder dasturining grafik imkoniyatlari 6
MediaPlayer komponentasidan foydalanib faqat ovozdan iborat faylni ijro ettirish mumkin. Bu borada Windows tomonidan boshqariladigan ovozli fayl fragmentini qaraymiz. 3.2.-rasmda ovozli fragmentni boshqaruvchi forma koʻrinishi tasvirlangan.
3.2. Rasm. Ovozli fayllar bilan ishlovchi dastur formasining koʻrinishi
Ovozli fayllar bilan ishlovchi MediaPlayer komponentasining qoʻllanilgan xossalari:
13-Jadval MediaPlayer komponentasi xossalarining mazmuni
Komponenta
|
Mazmuni
|
DeviceType
|
dtAutoSelect
|
VisibleButtons.btNext
|
False
|
VisibleButtons.btPrev
|
False
|
VisibleButtons.btStep
|
False
|
VisibleButtons.btBack
|
False
|
VisibleButtons.btRecord
|
False
|
VisibleButtons.btEject
|
False
|
Formada MediaPlayer komponentasi bilan birga ListBox komponentasi ham oʻrnatilgan. Undan foydalanib ijro etiladigan ovozli faylni tanlash mumkin. Shuningdek, 2 ta Label komponentasi ham formada joylashgan. Birinchisi xabar chiqarish uchun, ikkinchisi esa tanlangan fayl nomini aks ettirish uchun xizmat qiladi.
#include
#pragma hdrstop
#include "animate2.h"
#include
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
String SoundPath;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{ char *wd; // êàòàëîã Windows
wd = (char*)AllocMem(MAX_PATH);
GetWindowsDirectory(wd,MAX_PATH);
SoundPath = wd;
SoundPath = SoundPath + "\\Media\\";
TSearchRec sr;
if (FindFirst( SoundPath + "*.wav", faAnyFile, sr) == 0)
{ ListBox1->Items->Add(sr.Name); // äîáàâèì èìÿ ôàéëà â ñïèñîê
while (FindNext(sr) == 0)
ListBox1->Items->Add(sr.Name);
if (FindFirst( SoundPath + "*.mid", faAnyFile, sr) == 0)
ListBox1->Items->Add(sr.Name); // äîáàâèì èìÿ ôàéëà â ñïèñîê
while (FindNext(sr) == 0)
ListBox1->Items->Add(sr.Name); }
if (FindFirst( SoundPath + "*.rmi", faAnyFile, sr) ==0)
ListBox1->Items->Add(sr.Name); // äîáàâèì èìÿ ôàéëà â ñïèñîê
while (FindNext(sr) == 0)
ListBox1->Items->Add(sr.Name);
if ( ListBox1->Items->Count != 0)
{ Label2->Caption = ListBox1->Items->Strings [1] ;
MediaPlayer1->FileName = SoundPath + ListBox1->Items->Strings [1] ;
MediaPlayer1->Open ( ) ;
MediaPlayer1->Play() ;} }
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{ Label2->Caption = ListBox1->Items->Strings [ListBox1->ItemIndex];
MediaPlayer1->FileName = SoundPath + Label2->Caption;
MediaPlayer1->Open() ;
MediaPlayer1->Play() ;}
Dastur quyidagicha ishlaydi: Dastur ishga tushirilishi bilan OnCreate hodisasi Windowsning Media katalogida joylashgan ovozli fayllar roʻyxatini tuzadi. Turli operatsion sistamalarda bu katalog turlicha nomlanga boʻlishi mumkin. Shuning uchun uning nomini olish maqsadida GetWindows Directory uchun API funksiyasidan foydalaniladi. FineFirst va FindNext funksiyalaridan foydalanib ovozli fayllarning royxati tashkil etiladi. Bu funksiyalar bajarilgach tashkil etilgan ovozli fayllarning birinchisi ustida marker joylashtiriladi. Quyidagi misol ovozli faylni kompakt diskdan oʻqish jarayonini amalga oshirishga moʻljallangan. 6- rasmda dasturning formadagi koʻrinishi keltirilgan. Formada MediaPlayer komponentasi joylashtirilgan boʻlib Visible xossasiga false qiymatlangan. Shuning uchun u dastur ishga tushganda koʻrinmaydi
3.3. Rasm.Ovozli fayllar bilan ishlovchi dastur natijasi
|
| |