POCETNA STRANA

Seminarski i Diplomski Rad
 

SEMINARSKI RAD IZ MULTIMEDIJE

 

MULTIMEDIJALNA BIBLIOTEKA

Prilikom izrade multimedijalne biblioteke osnovna ideja je bila da napravimo aplikaciju koja će korisniku omogućiti rad sa različitim tipovima medija, prvenstveno digitalnim video i audio medijima.

 

Konceptualno, aplikacija je zamišljena kao biblioteka u koju korisnici postavljaju već gotov multimedijalni sadržaj, da bi nakon toga isti mogli pregledati. Glavna uloga same aplikacije je u hijerarhijskom arhiviranju multimedijalnog sadržaja, po osnovnim kategorijama. One predstavljaju tipove multimedijalnog sadržaja koji aplikacija podržava (npr kategorije audio, video, tekst).

 

Tokom razvoja same aplikacije, proširili smo osnovnu ideju, a samim tim i početni koncept tako što smo omogućili korisniku aplikacije (u daljem tekstu samo korisnik) kreiranje sopstvenih audio zapisa i tekstualnih fajlova. Takođe smo omogućili i otvaranje internet stranica, doduše, na primitivnom nivou, ali funkcionalno i praktično.

 

Tokom završnih radova na aplikaciji proširili smo hijerarhiju tako da korisnik pored osnovnih kategorija, može kreirati i svoje kategorije. Primjer ovoga je kreiranje foto albuma, gdje svaki foto album sadrži slike koje mu je korisnik dodjelio.Unutar grafičkog interfejsa ostavili smo mogućnost pretrage multimedijalnog sadržaja, ali ova funkcionalnost nije implementirana.

 

Kada se sve ovo uzme u obzir pred vama stoji potpuno funkcionalna aplikacija, koja na jednostavan način ispunjava potrebne zahtjeve korisnika ali takođe ostavlja i dovoljno prostora za dalju nadogradnju i nove verzije.


2. STORYBOARD, NAVIGACIJA KROZ APLIKACIJU

Ovo je početni ekran multimedijalne biblioteke. Klikom na dugme Start Virtual Library pokreće se glavni ekran multimedijalne biblioteke.

 

 

 

 

 

 

 

 

Glavni ekran multimedijalne biblioteke sastoji se od glavnog menija, koji se nalazi sa lijeve strane. Čine ga opcije video fajlovi, audio fajlovi, tekstualni fajlovi, web fajlovi. Klikom na slike u donjem lijevom uglu otvara se meni za rad sa slikama.

 

 

 

 

 

Nakon što smo na glavnom ekranu kliknuli na dugme Video fajlovi otvara nam se ovaj ekran. Centralni dio ekrana je zamišljen kao reklamni dio na kome se slučajnim izborom prikazuje najava jednog od trenutno aktuelnihh filmova.

 

Glavni meni se proširuje opcijama Dodavanje novih video zapisa, Pregled video zapisa.

Ekran dodavanje novih video zapisa je u suštini prilično jednostavan. Podjeljen je na dva dijela, jedan dio nam omogućava izbor video zapisa koji želimo dodati, a u drugom dijelu se taj video zapis reprodukuje.

Ovaj prozor omogućava korisniku aplikacije da dodaje nove video zapise u multimedijalnu biblioteku, a da ih prethodno pogleda.

 

 

Ekran pregled video zapisa omogućava korisniku da pregleda video zapise koji se trenutno nalaze u multimedijalnoj biblioteci. Sa lijeve strane kreira se spisak svih video zapisa. Opcijama back i next prelazi se na perthodni i sljedeći video zapis, respektivno.

 

U slučaju da na računaru nije instaliran Quick Time, ispisaće se ime fajla koji se pušta, ali neće biti reprodukcije.

Nakon što smo na glavnom ekranu kliknuli na dugme Audio fajlovi, otvara se ovaj ekran. Centralni dio je zamišljen kao reklamni dio, na kome se slučajnim izborom prikazuje neka od aktuelnih najava muzičkih grupa ili njihovih albuma.

 

Glavni meni se proširuje opcijama dodaj audio zapis, snimi audio zapis, pregledaj audio zapise.


Ekran dodaj audio zapis omogućava korisniku da dodaje (arhivira) audio zapise u multimedijalnu biblioteku. Ovaj ekran je podjeljen u dva dijela, gdje prvi dio služi za izbor audio zapisa koji želimo dodati, a u drugom dijelu možemo preslušati te audio zapise, prije nego što ih arhiviramo.

 

 

 

Ekran snimi novi audio zapis omogućava korisniku da snimi svoj audio zapis i arhivira ga. Predpostavlja se da korisnik ima potrebni hardver (mikrofon) koji je korektno instaliran.

Prije samog snimanja korisnik može izabrati frekvenciju snimanja 22050Hz ili 44100Hz kao i 8bitno ili 16bitno snimanje.

 

 

Ekran preslušavanje audio zapisa omogućava korisniku da presluša arhivirane audio zapise.

Posebnu pažnju treba obratiti na dva digmeta preslušavanje muzike i preslušavanje snimljenih zapisa. Klikom na jedno od ova dva dugmeta mjenja se spisak audio zapisa koji se preslušava.


Nakon što smo na glavnom ekranu kliknuli na dugme Tekstualni fajlovi, otvara se ovaj ekran. Centralni dio je zamišljen kao reklamni dio, na kome se slučajnim izborom prikazuju dve trenutno aktuelne knjige.

 

Glavni meni se za sada proširuje opcijom Tekst editor.

 

 

 

Ekran tekst editor omogućava korisniku da kreira tekstualni dokument po principu WYSWYG (What you see is what you get).

Ovaj tekst editor implementira sve standardne opcije tekst editora (bold, italic, underline, insert picture, subscript..). O detaljima njegove izrade pričaćemo kasnije.

 

 

Nakon što smo na glavnom ekranu kliknuli na dugme Web fajlovi, otvara se ovaj ekran. Centralni dio još uvijek nije rezervisan. Jedna od ideja je da se u njemu reklamiraju najaktuelnije internet prezentacije. 

 

Glavni meni se za sada proširuje opcijom Otvori stranicu sa interneta.

 


Ekran otvori stranicu sa interneta omogućava korisniku pregled internet stranica pomoću explorera ugrađenog u samu multimedijalnu biblioteku. Ovaj explorer implementira osnovne funkcionalnosti po uzoru na internet explorer.

 

 

 

 

 

Nakon što smo na glavnom ekranu kliknuli na sliku u donjem lijevom uglu otvara se ovaj ekran. Centralni dio još uvijek nije rezervisan. Jedna od ideja je da se u njemu prikazuju najnovije slike i galerije slika iz arhive.

 

Glavni meni se za sada proširuje opcijama Kreiraj novi album, Dodaj slike u album, Pregledaj albume i slike.

Ekran kreiraj novi album omogućava korisniku da pregleda spisak postojećih albuma i kreira nove albume. Kreirajući već postojeći album, korisnik briše sadržaj tog albuma (resetuje ga).

 

 

 


Ekran dodaj slike u album omogućava korisniku da dodaje slike u albume koje je prethodno kreirao. Svaka slika koju korisnik doda u album automatski se arhivira u multimedijalnu biblioteku.

Korisnik ima mogućnost da pregleda svaku sliku prije nego što je arhivira. Takođe za svaki album koji izabere prikazuje mu se spisak trenutnih slika u tom albumu.

Ekran pregledaj slike omogućava korisniku da pregleda albume koje je kreirao i slike koje je arhivirao.

Nakon što unese ime albuma i pritisne dugme ok prikazuje mu se lista svih slika u tom albumu. Ove slike korisnik pregleda pomoću opcija back i next.

 

 

 

 

 

Napomena:

Svaki korisnički ekran (izuzev glavni navigacijski ekran) u gornjem desnom uglu ima opciju Virtual Library Homepage. Klikom na ovu opciju korisnik se vraća na glavni navigacijski ekran. Na ovaj način korisnik u svakom momentu može pristupiti glavnom meniju, a samim tim i bilo kom drugom dijelu aplikacije.


    3. LINGO SKRIPTE

Tokom realizacije multimedijalne biblioteke napisali smo veliki broj lingo skriptova. Neki od njih su korišteni više puta kao što je poznati:

 

on prepareFrame me

_movie.go(_movie.frame)

end

 

Neki lingo skriptovi su napisani da pomognu izvršavanje postojećih lingo skriptova ili da isprave bug-ove koji su se javljali prilikom debugginga. U daljem tekstu opisaćemo najvažnije i najzanimljivije lingo skriptove, trudeći se da sažeto i na jednostavan način opišemo kako oni funkcionišu.

 

Napomena:

Pored ovih lingo skriptova koristili smo i nekoliko gotovih xtra biblioteka. Ove biblioteke, kao i njihove funkcije opisaćemo u sledećem poglavlju.

 

3.1. KONTROLA POZADINSKE PJESME

Sljedećih nekoliko skriptova omogućavaju korisniku da kontroliše pozadinsku pjesmu, koja kreće čim se aplikacija starta.

 

U samom startu aplikacije , pokreće se pjesma u sound kanalu 1 i atribut zvuk = -1. Ovo znači da pauza nije pritisnuta.

global zvuk

 

on PrepareMovie

 

  --> zvuk=1 znaci da je zvuk ukljucen, zvuk=-1 je isljucen zvuk

  zvuk = 1

  sound(1).play(member("Eminem-stan"))

   

end

 

Sledeća skripta se aktivira klikom na sound off/on dugme. Njena jedina uloga je da promjeni vrijednost zvuk promjenjive. Ako je zvuk = 1 prije startanja skripte onda će mu nova vrijednost biti -1 nakon izvršavanja skripte i obrnuto.

global zvuk

on mouseUp me

  zvuk = zvuk * (-1)

 

  -->if (zvuk=1) then member("sound").text = "SOUND ON"

  -->if (zvuk=-1) then member("sound").text = "SOUND OFF"

 

  if (zvuk=1) then

    sprite("sound").member.text = "SOUND ON"

    sound(1).play()

  end if

  if (zvuk=-1) then

    sprite("sound").member.text = "SOUND OFF"

    sound(1).pause()

  end if

 

end

 

Klikom na opcije tiho, srednje, glasno mjenja se jačina pozadinske pjesme. Skripte koje rade ovo imaju sledeći izgled. Važno je napomenuti da volume atribut sound kanala uzima vrijednosti u opsegu od 0 do 255, gdje 0 predstavlja najnižu jačinu (pjesma se ne čuje) a 255 najglasniju reprodukciju.

on mouseUp me

    sound(1).volume = 130

end

 


3.2. KREIRANJE NOVOG ALBUMA

 

 

on mouseUp me

  test = sprite("noviAlbum").member.text

  if (test  = "") then  _movie.go("greska")

  else if (test  = " ") then _movie.go("greska")

  else if (test = ".") then _movie.go("greska")

  else if (test = ",") then _movie.go("greska")

  else

    fajl = new xtra("fileio")

    noviAlbum = sprite("noviAlbum").member.text

    fajl.createFile(_movie.path & "\albumi\" & noviAlbum & ".txt")

    _movie.go("hvala")

   

    albumi = new xtra("fileio")

    albumi.openFile(_movie.path & "\albumi\albumi.txt", 0)

    pom = albumi.readFile()

    albumi.writeString(test & numtochar(13))

   

  end if

 

end

 

 

Kada korisnik unese ime novog albuma u sprite noviAlbum i pritisne dugme kreiranje novog albuma aktivira se prikazana skripta. Ova skripta otvara fajl albumi.txt koji već postoji i pomoću funkcije writeString() upisuje u njega naziv novog albuma.

 

Funkcija writeString() prima parametar test & numtochar(13). Numtochar(13) predstavlja taster enter. Ovo znači da se nakon svakog novog albuma pritišće taster enter, tako da u fajlu albumi.txt svaki red predstavlja po jedan unos.

 

Važno je napomenuti da u fajlu albumi.txt stoji samo spisak naslova albuma. Konkretno kreiranje novog albuma vrši se funkcijom

 fajl.createFile(_movie.path & "\albumi\" & noviAlbum & ".txt")

_movie.path atribut predstavlja putanju do aplikacije koju pokrećemo, a kada ovaj atribut povežemo sa \albumi\imeNovogAlbuma.txt dobijemo tačnu lokaciju ime fajla koji funkcija kreira.

 


3.3. ISPISIVANJE SADRŽAJA FAJLA U TEXTBOX

 

on prepareFrame me

 

  -- ispisuje trenutni sadrzaj fajla u neki boks

  -- ovo ce nam trebati vise puta

  fajl = new xtra("fileio")

  fajl.openFile(_movie.path & "\albumi\albumi.txt",1)

  pom = fajl.readFile()

  sprite("albumi").member.text = pom

 

  if(sprite("album").member.text <> "") then

    fajl2 = new xtra("fileio")

    fajl2.openFile(_movie.path & "\albumi\" & sprite("album").member.text & ".txt",1)

    pom2 = fajl2.readFile()

    sprite("sadrzaj").member.text = string(pom2)

  end if

 

end

 

Tokom kreiranja aplikacije ovu skriptu smo koristili svaki put kada je trebalo ispisati sadržaj nekog fajla u textbox. Konkretno, gore je prikazan ispis sadržaja fajla albumi.txt u textbox sprite albumi.

 

Funkcija readFile() se nalazi unutar standardnog fileio xtra. Ona očitava sadržaj tekstualnog fajla i upisuje ga kao string u neku promjenjivu. Kasnije atributu text nekog sprite-a dodjelimo rezultat te funkcije.

pom = fajl.readFile()

sprite("albumi").member.text = pom

 

Za ovakvu skriptu potrebno je napraviti još jednu malu skriptu, koja se obično nalazi prije ove skripte. Uloga te pomoćne skripte je da svaki put resetuje (izbriše) sadržaj textboxa.

sprite("albumi").member.text= “”

 

Na ovaj način spriječavamo duple unose u textbox.


3.4. KREIRANJE LISTE SADRŽAJEM TEKSTUALNOG FAJLA

 

global listaAudio

global pozicijaAudio

global duzinaListeAudio

 

global izborListe

global izborDirektorija

on prepareFrame me

 

  -- ispisuje trenutni sadrzaj fajla u neki boks

  -- ovo ce nam trebati vise puta

  fajl = new xtra("fileio")

  fajl.openFile(_movie.path & "\audio\" & izborListe ,1)

  pom = fajl.readFile()

  sprite("playlist").member.text = pom

 

  -- dio koda koji priprema listu sa slikama

  listaAudio = []

  sadrzaj = pom

  duzina = sadrzaj.length

 

  repeat while (sadrzaj.length>4)

    pom2 = offset(numtochar(13),sadrzaj)

    unos = sadrzaj.char[1..(pom2-1)]

    listaAudio.add(unos)

    sadrzaj = sadrzaj.char[(pom2+1)..duzina]

  end repeat

 

  -- izracunava duzinu liste

  duzinaListeAudio = listaAudio.count()

 

  -- dio koda koji pokrece snimak

  sound(1).playFile(_movie.path & "\audio\" & izborDirektorija & "\"  & listaAudio[pozicijaAudio])

  sprite("unos").member.text = listaAudio[pozicijaAudio]

end

 

Obratite pažnju na dio koda koji priprema listu sa slikama. Taj dio se nalazi odmah ispod djela koda koji stavlja sadržaj nekog fajla u textbox (ovaj kod smo ranije opisali).

 

Kreiramo novu listu listaAudio = []. Unutar petlje repeat while svaki put kada naiđemo na kraj reda, tj. na numtochar(13), isjecamo taj dio iz fajla i dodajemo ga u listu.

pom2 = offset(numtochar(13),sadrzaj)

unos = sadrzaj.char[1..(pom2-1)]

listaAudio.add(unos)

Funkcija offset provjerava da li se numtochar(13) nalazi u stringu sadržaj i ako se nalazi vraća kao rezultat broj koji predstavlja mjesto na kom se nalazi. Funkcija add(unos) dodaje novi unos u listu.

 

Uslov petlje je (sadrzaj.length>4), ovo je zbog toga što svaki fajl mora imati više od 4 karaktera da bi bio validan, (.mp3) najmanje tri otpadnu na ekstenziju i jedan na tačku.


3.5. ČESTO KORIŠTENE SKRIPTE

Prilikom kreiranja aplikacije više puta nam je zatrebalo da odredimo ekstenziju fajla koji otvaramo. Pomoću te ekstenzie određivali smo gdje arhivirati fajl i vršili neke dodatne promjene. Skripta ima jako jednostavnu logiku, a to je da pronalazi tačku unutar stringa koji predstavlja ime fajla. Jednom kada pronađe tačku kopira sve od te tačke do kraja fajla (a to je ustvari ekstenzija fajla). Rezultat vraća u atribut ekstenzija.

  -- odredjuje ekstenziju fajla

  lokacija = lista[movieListaPozicija]

  duzina = lokacija.length

  pozicija = offset(".",lokacija)

  ekstenzija = lokacija.char[pozicija+1..duzina]

 

Kada god smo trebali zaustaviti film na nekom frejmu, a da ne moramo zaustavljati kompletan film koristili smo sledeću skriptu. Ova skripta konstantno vraća film na trenutni frejm i na taj način ostavlja utisak kao da je film pauziran.

on exitFrame me

  _movie.go(_movie.frame)

end

 

Još jedna korisna skripta je skripta za slučajno aktiviranje bannera. Uloga ove skripte je da od nekoliko ponuđenih reklama, slučajno izabere jednu i pokrene je unutar sprajta unaprijed predviđenog za reklame. Skripta koju smo prikazali bira slučajni broj random(5). Zavisno od broja koji se dobije aktivira se banner1 .. banner5 i pomoću atributa fileName dodjeljuje se članu member(109).

on prepareFrame me

  x = random(5)

  banner1 = root + "/banner/movie/Shrek3.jpg"

  banner2 = root + "/banner/movie/LordOfTheRings.jpg"

  banner3 = root + "/banner/movie/Transformers.jpg"

  banner4 = root + "/banner/movie/Hellboy.jpg"

  banner5 = root + "/banner/movie/RushHour3.jpg"

 

  if (x = 1) then member(109).fileName = _movie.path & "\banner\movie\Shrek3.jpg"

  if (x = 2) then member(109).fileName = _movie.path & "\banner\movie\LordOfTheRings.jpg"

  if (x = 3) then member(109).fileName = _movie.path & "\banner\movie\Transformers.jpg"

  if (x = 4) then member(109).fileName = _movie.path & "\banner\movie\Hellboy.jpg"

  if (x = 5) then member(109).fileName = _movie.path & "\banner\movie\RushHour3.jpg"

 

end

 

Napomena:

Da smo htjeli napraviti administratorski meni, pomoću koga administrator može dodavati nove reklame, tada bi vjerovatno imali funkciju koja očitava sadržaj direktorija sa reklamama, smješta ga u listu, a funkcija random ne bi primala broj 5, nego neko x, gdje x predstavlja broj reklama u direktoriju.


4. XTRA BIBLIOTEKE

Ove biblioteke predstavljaju gotov skup funkcija, koje se mogu koristiti unutar Director MX 2004. Ono što moramo uraditi da bismo koristili ove funkcije jeste da svaku biblioteku prethodno kopiramo u direktorij predviđen za xtra biblioteke, unutar Director instalacionog direktorija.

 

C:\Program Files\Macromedia\Director MX 2004\Configuration\Xtras

 

Unutar xtras direktorija , nalaze se poddirektoriji koji omogućavaju da se xtra biblioteke sortiraju. U suštini nije bitno u kom direktoriju se nalazi xtra biblioteka, dok god je unutar xtras direktorija.

 

Jednom kada prekopiramo xtra biblioteku u direktorij xtras, potrebno je restartovati Director MX 2004, da bi uslijedile promjene. Nakon toga u glavnom meniju Insert pojave se xtras koje možemo koristiti.

 

U daljem izlaganju, opisaćemo neke xtra biblioteke koje smo koristili. Ove xtra biblioteke su preuzete sa interneta i neke od njih se plaćaju. Unutar naše aplikacije koristili smo besplatne i potpuno legalne verzije tih biblioteka.

 

Od opisanih xtra biblioteka najviše nam je pomogla Buddy API xtra biblioteka. Pomoću nje smo kopirali fajlove sa jednog mjesta na drugo, kreirali direktorije, brisali direktorije i fajlove. Ovo su samo neke od osnovnih funkcija ove jako opširne biblioteke. Detaljna dokumentacija je priložena u dodatku.

4.1. cXtraSoundRec

cXtraSounRec dozvoljava nam da snimimo audio zapis i zapamtimo ga kao wav ili MP3 format, promjenimo jačinu snimanja ili kvalitet snimanja.

  • Snimanje zvuka sa mikrofona ili nekog drugog izvora zvuka
  • Učitavanje wav fajlova
  • Konkatenacija dva wav fajla
  • Konvertovanje audio formata u wav
  • Arhiviranje wav fajlova
  • Arhiviranje MP3 fajlova
  • Prikazuje Windows Mixer
  • Prikazije Windows Record Mixer
  • Podržava formate : 8000, 11025, 22050, 44100 Hz; 8, 16 bit; mono, stereo
  • Mjenja volumen svakog sound kanala

 

4.2. cXtraRTFEditor

cXtraRTFEditor je standardni RTF editor. Moguće je zapamtiti rezultate kao .txt ili .rtf format.

  • Radi sa windows fontovima instaliranim na lokalnom sistemu
  • Font stilovi : Bold, Italic, Underline, StrikeOut, Color, BackColor, Size, SuperScript, SubScript
  • Font poravnanja : Left, Center, Right
  • Undo/Redo
  • Copy/Paste
  • New / Open / Save Files
  • Insert Image
  • Resize image
  • Insert OLE files
  • Print preview

 

4.3. cXtraWebBrowser

Ovaj xtra je Internet Explorer komponenta koja mjenja ActiveX. Nije potrebno instalirati nikakav dodatni softver na računar. Ova xtra biblioteka omogućava sve opcije koje ima Internet Explorer.

 

  • Podešavanje web browsera sa željenim menijem
  • Standardne funkcije: Back, Find, Forward, Home, Print, Stop
  • Address bar, Status bar, Tool bar
  • Uključi i isključi barove, on/off
  • Arhivirat html sadržaj

5. PRILOG

 

5.1. VAŽNIJI ČLANOVI EKIPE

Sama aplikacija ima veliki broj članova ekipe. Opisali smo neke od njih, koji su nam bili posebno značajni.

 

Redni broj

Naziv

Opis

1

logo

slika koja predstavlja logo multimedijalne biblioteke, koristi se cijelo vrijeme

2

pozdravniTekst

uvodni tekst, pojavljuje se samo u uvodnoj sceni

4

startVL

dugme koje vodi korisnika iz uvodne u glavnu scenu

316

moviePreview

Ovaj member se nalazi u dijelu aplikacije dodaj novi video.  Unutar njega se prikazuje preview videa.

326

movieLook

Ovaj member se nalazi u dijelu aplikacije pregled video zapisa. Unutar njega se prikazuje trenutno aktueli video.

109

bannerMovie

Ovaj member se nalazi u dijelu aplikacije video fajlovi. Unutar njega se prikazuje slučajno izabrana reklama za film.

97

bannerAudio

Ovaj member se nalazi u dijelu aplikacije audio fajlovi. Unutar njega se prikazuje slučajno izabrana reklama za muzičku grupu ili album.

120

bannerText1

Ovaj member se nalazi u dijelu aplikacije text fajlovi. Unutar njega se prikazuje reklama za knjigu, koja stoji sa lijeve strane.

121

bannerText2

Ovaj member se nalazi u dijelu aplikacije text fajlovi. Unutar njega se prikazuje reklama za knjigu, koja stoji sa desne strane.

107

world_map_capitals

Ovaj member u sebi sadrži sliku wordMapCapitals koja se ne mjenja tokom izvršavanja aplikacije. On se nalazi u dijelu aplikacije web fajlovi.

218

audioPreview

Ovaj member se nalazi u dijelu aplikacije dodaj novi audio fajl.  Unutar njega se prikazuje preview audio fajla.

196

cXtraWebBrowser

Member koji smo kreirali klikom na Insert – cXtra . Ovaj member u sebi sadrži kompletan web browser sa default podešavanjima.

204

cXtraRtfEditor

Member koji smo kreirali klikom na Insert – cXtra . Ovaj member u sebi sadrži kompletan RTF tekst editor sa default podešavanjima.


5.2. DOKUMENTACIJA XTRA BIBLIOTEKA

 

5.2.1. cXtraSoundRec

Property

Type

Description

AudioChannel

string

"mono"
"stereo"

AudioFrequency

string

"8000", "11025", "22050", "44100" frequency of the audio capture

AudioResolution

string

"8 bits","16 bits" use when save to file

LeftVolume

integer

0..100 wave out volume of the left channel

RightVolume

integer

0..100 wave out volume of the right channel

RecordTimeLimit

integer

Limit the record to X milliseconds

Method

Argument

Return

Description

ConcatFiles

FileName1 : string
FileName2 : string
FileOut : String

string

Concat two wav files. The files should have the same format.

ConvertFileFormat

SourceFile : string
DestFile : string
Freq :integer
Resolution : integer
Channels : integer

boolean : true
if function success

Convert a file to a specified format.
Freq should be 8000,11025,22050,44100
Resolution should be 8 or 16
Channels should be 1 or 2

ExtractSamples

FileName : string ; start , end , count : integer

string(array)

Return an array with samples. You can draw a chart with the data.

GetCuePointList

FileName : string

string

Return an array with cue points informations (position, name, description)

GetDevices

 

string

Return the list of wave input devices

GetFileFormat

FileName : string

 

Return some informations on the specified file:
SampleRate, BitsPerSample, NumberOfChannels, Duration

GetStatus

 

string

Return teh current status of the xtra :
"No sound", "Recording", "Playing", "Stopped"

GetRecordVolume

Device : string

integer

Get the record volume of the specified device 0..100.
Use GetDevices to get the device name. You can use "" to get the volume of the microphone by default.

Length

 

integer

Length of the record in milliseconds

LoadFromFile

FileName : string

boolean : true
if function success

Load a wav from a file.

Pause

 

 

Stop playing the wav

Play

 

 

Play the previous record or the playing sound

Position

 

integer

Position (after pause or during play) in milliseconds

Reset

 

 

Reset the xtra

Resume

 

 

Restart playing after a pause

SaveRecordToFile

Filename : string

boolean :true
if function success

Save the record to a wav file

SaveRecordToMP3

Filename : string

boolean :true
if function success

Save the record in mp3 format (if lame dll is present).
Record should be made with
Resolution = 16bits and Frequency = 44100hz.

SaveRecordToMP3Ex

Filename : string
BitRate : integer
Quality : string

boolean :true
if function success

Save the record in mp3 format (if lame dll is present).
Record should be made with Resolution = 16bits and Frequency = 44100hz.
bit rate could be :
32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 and 320
Quality : NORMAL, LOW, HIGH, VOICE

SaveRecordToOGG

Filename : string

boolean :true
if function success

Save the record in ogg format (if vorbisenc.dll is present).
Record should be made with Resolution = 16bits and Frequency = 44100hz and Stereo.

SaveRecordToOGGEx

Filename : string
BitRate : integer

boolean :true
if function success

Save the record in ogg format (if vorbisenc.dll is present).
Record should be made with Resolution = 16bits and Frequency = 44100hz and Stereo.

Seek

position : integer

 

Position the wav before playing (in millisecond)

SetRecordVolume

Device : string
Volume : integer

 

Set the record volume of the specified device. Volume should be in 0..100.
Use GetDevices to get the device name. You can use "" to set the volume of the microphone by default.

ShowMixer

 

 

Show the windows sound mixer (out levels)

ShowRecordMixer

 

 

Show the windows sound mixer (in levels)

StartRecord

 

 

Start the sound record

Stop

 

 

Stop the record or the playing sound

TruncateFile

FileName : string
FileOut : string
StartTime : integer
EndTime : integer

 

Truncate a file a from the specified positions.
StartTime and EndTime should be in milliseconds

 


5.2.2. cXtraRTFEditor

 

Property

Type

Description

BackGroundColor

color

Get or set the background color of the selection in the rich edit control. This property is only available for the sprite.

BorderStyle

integer

If BorderStyle=0 then the cXtraRTFEditor sprite has no border
If BorderStyle=1 then the cXtraRTFEditor sprite has aborder

Color

Color

Get/set the background color of the editor.

DefaultFontName

color (integer)

Change the default font. Attention : the font must be installed in the operating system.

DefaultFontSize

string

Size of the default font. This changes the sprite size too.

DefaultFontColor

integer

Color of the default font. This changes the sprite size too.

DefaultFontStyle

integer

Change the default font style : Bold = 1, Italic = 2, Underline = 4, StrikeOut = 8
Example : Bold+Italic : 1+2=3 : Fontstyle=3

DetectURL

boolean

If DetectURL= true then the LinkClicked event is triggered if the user clicks on a link.

Modified

boolean

Indicate if the rtf editor was modified (you can fix it). This property is only available for the sprite.

FilterDialogs

string

Specify the text for the filter of the save as dialog.
The format should be :
"All files (*.*)|*.*|RTF file (*.rtf)|*.rtf|Text file (*.txt)|*.txt"

FontName

color (integer)

Get or set the font. Attention : the font must be installed in the operating system. This property is only available for the sprite.

FontSize

string

Get or set the size of the font. This property is only available for the sprite.

FontColor

RGBColor

Get or set color of the font. This property is only available for the sprite.
Ex: sprite(1).FontColor=rgb(255,0,0)

FontStyle

integer

Get or set the font style : Bold = 1, Italic = 2, Underline = 4, StrikeOut = 8
Example : Bold+Italic : 1+2=3 : Fontstyle=3
This property is only available for the sprite.

IsBold

boolean

Get or Set the Bold style of the selection. This property is only available for the sprite.

IsItalic

boolean

Get or Set the Italic style of the selection. This property is only available for the sprite.

IsUnderline

boolean

Get or Set the Underline style of the selection. This property is only available for the sprite.

IsStrikeOut

boolean

Get or Set the Strikeout style of the selection. This property is only available for the sprite.

NewFileMessage

string

message display when you call the new document methode and when the current document was modified.

ToolBarVisible

boolean

Tool bar is visible or not.

MaxLenght

integer

Set the max lenght of text in the editor

OverWriteMessage

string

message display when user try to overwrite a file.

PageView

boolean

WYSIWYG formatting or not in a rich edit control. This property is only available for the sprite.

ReadOnly

boolean

The user can write or not in the editor.

SelLength

integer

the length of the selected text. This property is only available for the sprite.

SelStart

integer

the position of the first carater in selection. This property is only available for the sprite.

SelText

string

the selected text. This property is only available for the sprite.

WordWrap

boolean

word wrap option for the Rich Edit control. This property is only available for the sprite. Attention : this property doesn't work if you use images or OLE objects : the links will be broken.

Method

Arguments

Return

Description

CheckPrinter

 

boolean

Return true if the printer is ready. Useful when the final user uses a network printer for example, this avoid to get an error message.
put sprite(1).CheckPrinter()
-- 1

ChooseBackColor

 

 

Open a color dialog box to change the text background color. Custom colors are stored during the application session.

ChooseTextColor

 

 

Open a color dialog box to change the text color. Custom colors are stored during the application session.

ClickOn

NameOfButton : string

 

Simulate a click on the specified button.
(The list of correct values is at the bottom of this table)

CopyToClipboard

 

 

Copy the current selection to the clipboard.
If you copy a colored text and paste it to an external editor, you will get the colored text.

GetCursorPos

 

position : point

Get the position of the cursor : position[1] is the line number and position[2] is the char number in the current line

GetSystemFontList

 

StringList

Get all font installed on the system in a list of strings like : "["Arial","Verdana"]"

GetText

{TextOnly: boolean}

String

Get the Text of RTF control. TextOnly is true when you don't want RTF symbols (this argument is optionnal).

InsertImage

member, castlib : integer/String

boolean

insert an image from a castlib member

InsertImageFile

filename: string

boolean

insert an image from a file.

InsertOleFile

filename: string

 

insert a ole object from a file

LoadFromFile

FileName : string

boolean : true if the file is loaded, false in all other case.

Load the items from a text file

NewDocument

 

 

prepare th rich edit control for a new document.

OpenFile

 

 

Show a dialog for choose a file and open it

PageConfig

 

 

Show a dialog to set the marges of the document.

PasteFromClipboard

[Pos : integer]

 

The Pos argument is optional and can be :
-1 : the begining of the text
-2 : the end of the text
a number : the position in the text
If Pos is not specified, the text in the clipboard is pasted to the current position of the cursor.

Preview

 

boolean : false if no printer is installed

Show a print preview of the current document.

Print

 

 

Show a dialog for printing the current document and print it.

SaveFile

 

 

Save the current file.

SaveFileAs

 

 

Save as the current document.

SaveToFile

FileName : string

boolean : true if the file is saved, false in all other case.

Save the items to a text file

SelectAll

 

 

Select all datas in the RTF Editor

SetBtnCaptionPreview

Lst:stringList

 

Set the Caption of the Toolbar buttons.
ex: ["BtnPrint = Print", "BtnClose = Close",...]

the name of the buttons are :
"BtnPrint", "BtnNext", "BtnPrev", "BtnZoomIn", "BtnZoomOut", "BtnClose"

SetBtnHint

Lst:stringList

 

Set the Hint of the Toolbar buttons.
ex: ["BtnNew = new file", "BtnOpen = open a file"...]

SetBtnHintPreview

Lst:stringList

 

Set the Hint of the Toolbar buttons of the preview.
Ex:
Lst = ["BtnPrint = Printing my doc !", "BtnClose = Close this window"]
sprite(1).SetBtnHintPreview(string(Lst))

SetBtnImages

member, castlib : integer/String

boolean

Put images for each node by loading a Bitmap from an image member.
The size of each part of the image should be 16 x 16 pixels.
Your bitmap file must be horizontal with all your images.
So your bitmap width will be 16 x number of images.
The pixel color at the bottom left corner specify the transparency color.

SetColorName

Lst:stringList

 

Set the names of each color in the color button of the toolbar.
sprite(1).SetColorName(string(["Make your choice","Auto","Black","Dark red","Dark green"]))

SetCursorPos

Pos : integer OR Point : Point

 

Set the position of the cursor in the text.
Point is (line,column)

SetFontList

Lst:stringList

 

Specify the list of fonts available in the font selection of the editor :
sprite(1).SetFontList(string(["Arial","Verdana"]))

SetText

Text: string

boolean

Set the Text of cXtraRTFEditor.
(use SetText(member("textmember").rtf)
Warning : We found several bugs in the RTF code of Director Members (all versions) so you should test a little bit more your application if you use this method. You should use external RTF files to be sure of the result.

ShowButtons

Lst:List, value:boolean

 

Set the visible property of each buttons of the toolbar.
ex: sprite(1).ShowButtons( string(["BtnNew", "BtnPrint"]), false)

ShowButtonsPreview

Lst:stringList

 

Set the visible property of each buttons of the toolbar.
Ex:
Lst = ["BtnPrint", "BtnClose"]
sprite(1).ShowButtonsPreview(string(Lst))

SetMargins

R:Rect or x1,y1,x2,y2: integer

 

Set the margins of the document.

 


5.2.3. cXtraWebBrowser

Property

Type

Description

Address

String

Set the address of the web page (ex: www.cxtra.net)

AddressBarVisible

boolean

The Address bar is visible or not

StatusBarVisible

boolean

The Status bar is visible or not

ToolBarVisible

boolean

The Tool bar is visible or not

Method

Arguments

Return

Description

Back

 

 

Go to the back page (in the history)

Find

 

 

Go to find page (ie setting)

Foward

 

 

Go to the forward page (in the history)

Home

 

 

Go to home page

Print

 

 

Print the page

Reload

 

 

Refresh the page

Save

FileName:String

boolean

Save the html code of the current page (not images and objects) to the specified file. Return true if success

SaveAs

 

 

Save the html code of the current page (not images and objects) to the file specified by the saveas dialog box.

SetHint

Liste: string

 

Set the hint of the button of the tool bar. The order is : ["Back", "Foward", "Stop", "Home", "Find", "Print"]

SetImages

member, castlib : integer

 

Put images for each node by loading a Bitmap from an image member.
The size of each part of the image should be 24x24 pixels.
Your bitmap file must be horizontal with all your images.
So your bitmap width will be 24 x number of images.
See the demo to understand in one second.
The pixel color at the bottom left corner specify the transparency color.

Stop

 

 

Stop loading the page

Event

Arguments

Return

Description

PageChanging

url : string

You can use return true to cancel the action

This event is triggered each time a page is loaded, you can return false to stop the loading.
Ex:
on PageChanging me, NewUrl
put NewUrl
if NewUrl contains ".com" then
alert(".com pages are disabled in the event script of the xtra.")
return true
end if
if NewUrl contains "cxtra.net" then
alert("It's a nice site !")

5.2.4. BuddyAPI xtra

This list covers Windows 3.7 and Macintosh 1.6

Information functions

 

Version

returns version info (OS, NT, DOS, QuickTime, VFW)

SysFolder

returns location of system folders (windows, system, temp, etc)

CpuInfo

gets information (type, speed) about the processor installed

DiskInfo

gets information (type, size, name, number) about a disk

DiskList

reurns list of mounted disks

FindApp

finds the application associated with a file type

ReadIni

reads an ini file

WriteIni

writes an entry to an ini file

DeleteIniEntry

deletes entry from an ini file

DeleteIniSection

deletes entire section from an ini file

FlushIni

forces Windows to write an ini file to disk

ReadRegString

reads Registry string value

WriteRegString

writes string value to the Registry

ReadRegNumber

reads Registry number value

WriteRegNumber

writes number value to the Registry

ReadRegBinary

reads Registry binary value

WriteRegBinary

writes binary value to the Registry

ReadRegMulti

reads Registry multi string value

WriteRegMulti

writes multi string value to the Registry

DeleteReg

deletes Registry entry

RegKeyList

returns a list of sub-keys inside a registry key

RegValueList

returns a list of values inside a registry key

SoundCard

checks whether a sound card is installed

FontInstalled

checks whether a font is installed

FontList

returns a list of installed fonts

FontStyleList

returns a list of available styles for a truetype font

CommandArgs

returns the command line arguments the application was started with

Previous

checks whether a previous instance is running

ScreenInfo

gets information (width, height, etc) of the screen

MultiDisplayInfo

gets information (width, height, etc) of the screen

MultiDisplayList

gets list of installed monitors

MemoryInfo

returns information about the system memory

Gestalt

returns gestalt value

GestaltExists

checks whether a gestalt is available



System functions

 

DisableDiskErrors

disables the 'Drive not ready' error message

DisableKeys

disables/enables key presses

DisableMouse

disables/enables mouse clicks

DisableSwitching

disables/enables task switching

DisableScreenSaver

disables/enables the screen saver

ScreenSaverTime

sets the screen saver time out

SetScreenSaver

sets the screen saver

SetWallpaper

sets the desktop wallpaper

SetPattern

sets the desktop pattern

DesktopColor

returns the current desktop color

SetDesktopColor

sets the desktop color

SetDisplay

sets the screen size and depth

SetDisplayEx

sets the screen size and depth

SetMultiDisplay

Sets the screen size and depth

ExitWindows

exits or restarts Windows

RunProgram

runs an external program

WinHelp

shows a Windows help file

MsgBox

shows standard message box

MsgBoxButtons

changes text on MsgBox buttons

MsgBoxEx

shows custom message box

Prompt

asks for a string input

LogIn

asks for a log in

HideTaskBar

shows/hides the Win95 task bar

SetCurrentDir

changes the DOS current directory

CopyText

copies text to the clipboard

PasteText

pastes text from the clipboard

EncryptText

encrypts a text string

DecryptText

decrypts a text string

PlaceCursor

positions the cursor

RestrictCursor

restricts the cursor to a specific screen area

FreeCursor

allows the cursor to move anywhere on the screen

SetVolume

sets the volume of wave and midi files and audio CD

GetVolume

gets the current sound volume of wave and midi files and audio CD

Environment

gets the value of an environment variable

SetEnvironment

sets the value of an environment variable

Administrator

returns administrator status

UserName

returns the current user

ComputerName

returns the computer network name

Language

return current system language

InstallFont

installs TrueType or bitmap font

Sleep

pauses the calling Directof/Authorware program

SystemTime

returns the current system time/date

SetSystemTime

sets the system time/date

KeyIsDown

checks whether a key is being held down

KeyBeenPressed

checks whether a key has been pressed

CreatePMGroup

creates a Program Manager or Start Menu group

DeletePMGroup

deletes a Program Manager or Start Menu group

PMGroupList

returns a list of all Program Manager groups

PMSubGroupList

returns a list of all groups inside another group

CreatePMIcon

creates a Program Manager or Start Menu icon

DeletePMIcon

deletes a Program Manager or Start Menu icon

PMIconList

returns a list of all the icons in a Program Manager group

PrinterInfo

returns information about the installed printer

SetPrinter

changes settings for the default printer

PrintDlg

shows standard print dialog

PageSetUpDlg

shows standard page set up dialog

RefreshDesktop

refreshes the desktop icons

EjectDisk

ejects a disk


File functions

 

FileAge

returns the age of a file

FileExists

checks whether a file exists

FolderExists

checks whether a folder exists

IsBundle

checks if a file is a bundle

CreateFolder

creates a new folder

DeleteFolder

deletes an empty folder

FolderSize

returns the size of a folder

RenameFile

renames a file

DeleteFile

deletes a file

DeleteXFiles

deletes files with wildcard matching

XDelete

deletes files with wildcard matching, including sub-directories

FileDate

returns the date of a file

FileDateEx

returns the date of a file

FileSize

returns the size of a file

FileAttributes

returns the set attributes of a file

SetFileAttributes

sets the attributes of a file

RecycleFile

places a file in the Win95/NT recycle bin

MoveOnReboot

moves a file on system reboot

CopyFile

copies a file

CopyXFiles

copies multiple files with wildcard matching

XCopy

copies multiple files with wildcard matching including sub-directories

CopyFileProgress

copies a file with a progress bar

CopyXFilesProgress

copies multiple files with wildcard matching, with a progress bar

CopyXFilesProgress

copies multiple files with wildcard matching including sub-directories, with a progress bar

FileVersion

returns the version of a file

FileList

returns a list of files in a folder

FolderList

returns a list of folders inside another folder

FindFirstFile

searches drive for a file

EncryptFile

encrypts/decrypts a file

FindDrive

searches all drives for a specified file

GetFilename

displays a file selection dialog

GetFolder

displays a folder selection dialog

GetDisk

displays a disk selection dialog

OpenFile

opens a file using it's associated program

Shell

executes a file

OpenURL

opens a URL using the default browser

PrintFile

prints a file using it's associated program

ShortFileName

returns the short version of a file name

LongFileName

returns the long version of a file name

ReturnUnixNames

specifies to return file names in Unix format

UnixName

converts HFS file name to Unix format

HfsName

converts Unix file name to HFS format

TempFileName

returns a temporary file name guaranteed not to exist

MakeShortcut

creates a shortcut/alias

MakeShortcutEx

creates a shortcut

ResolveShortcut

returns the file a shortcut points to

FileCreator

returns the file creator type

FilePermissions

returns UNIX file permissions

SetFilePermissions

sets UNIX file permissions

FileType

returns the file type

SetFileInfo

sets the creator and type for a file


Window functions

 

WindowInfo

returns info (state, size, postion, title, class) of a window

FindWindow

finds a window with given title or class

WindowList

returns a list of all windows with given title or class

ChildWindowList

returns a list a window's child windows

ActiveWindow

returns the active window

WaitForWindow  

waits until a specified window is in a specified state

WaitTillActive  

waits until a specified window becomes the active one

NextActiveWindow

returns the next window to become active

CloseWindow

closes a window

CloseApp  

closes the application owning a window

WindowExists  

checks that a window handle is valid

SetWindowState

minimises, maximises, hides a window

ActivateWindow

activates the specified window

SetWindowTitle

set the caption of a window

MoveWindow

moves/resizes a window

WindowToFront

brings the window to the front

WindowToBack

sends the window to the back

WindowDepth

gets the z-order depth of a window

SetWindowDepth

sets the z-order depth of a window

GetWindow

finds a window related (child, parent, etc) to another window

SetParent

makes a window a child of another window

ClipWindow

removes edges from window

WaitTillActive

waits until a specified window becomes the active one

SendKeys

sends simulated key presses to the active window

SendMsg

sends a windows message to a window

AddSysItems

adds System menu, min and max boxes

RemoveSysItems

removes System menu, min and max boxes

WinHandle

returns the Director stage or Authorware presentation window

StageHandle  

returns the Director stage window

 


LITERATURA

 

Materijal koji nam je pomogao pri izradi naše aplikacije, nalazi se na sledećim web stranicama:

 

http://dsp.etfbl.net/multimedia/

http://www.cxtra.net/

http://www.mods.com.au/budapi/

http://director-online.com/

http://www.starsoftmultimedia.com/

http://forums.creativecow.net

http://www.download.com/Adobe-Director-MX/

PROČITAJ / PREUZMI I DRUGE SEMINARSKE RADOVE IZ OBLASTI:
ASTRONOMIJA | BANKARSTVO I MONETARNA EKONOMIJA | BIOLOGIJA | EKONOMIJA | ELEKTRONIKA | ELEKTRONSKO POSLOVANJE | EKOLOGIJA - EKOLOŠKI MENADŽMENT | FILOZOFIJA | FINANSIJE |  FINANSIJSKA TRŽIŠTA I BERZANSKI    MENADŽMENT | FINANSIJSKI MENADŽMENT | FISKALNA EKONOMIJA | FIZIKA | GEOGRAFIJA | INFORMACIONI SISTEMI | INFORMATIKA | INTERNET - WEB | ISTORIJA | JAVNE FINANSIJE | KOMUNIKOLOGIJA - KOMUNIKACIJE | KRIMINOLOGIJA | KNJIŽEVNOST I JEZIK | LOGISTIKA | LOGOPEDIJA | LJUDSKI RESURSI | MAKROEKONOMIJA | MARKETING | MATEMATIKA | MEDICINA | MEDJUNARODNA EKONOMIJA | MENADŽMENT | MIKROEKONOMIJA | MULTIMEDIJA | ODNOSI SA JAVNOŠĆU |  OPERATIVNI I STRATEGIJSKI    MENADŽMENT | OSNOVI MENADŽMENTA | OSNOVI EKONOMIJE | OSIGURANJE | PARAPSIHOLOGIJA | PEDAGOGIJA | POLITIČKE NAUKE | POLJOPRIVREDA | POSLOVNA EKONOMIJA | POSLOVNA ETIKA | PRAVO | PRAVO EVROPSKE UNIJE | PREDUZETNIŠTVO | PRIVREDNI SISTEMI | PROIZVODNI I USLUŽNI MENADŽMENT | PROGRAMIRANJE | PSIHOLOGIJA | PSIHIJATRIJA / PSIHOPATOLOGIJA | RAČUNOVODSTVO | RELIGIJA | SOCIOLOGIJA |  SPOLJNOTRGOVINSKO I DEVIZNO POSLOVANJE | SPORT - MENADŽMENT U SPORTU | STATISTIKA | TEHNOLOŠKI SISTEMI | TURIZMOLOGIJA | UPRAVLJANJE KVALITETOM | UPRAVLJANJE PROMENAMA | VETERINA | ŽURNALISTIKA - NOVINARSTVO