15
Elektrotehnički fakultet Banja Luka P R O J E K T N I R A D iz predmeta: M U L T I M E D I J A L N I S I S T E M I zadatak: Virtuelna multimedijalna biblioteka Studenti: Asistent: Vladimir Javorina, 80/02 Vladimir Risojević Milan Babić, 45/02

MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Elektrotehnički fakultet Banja Luka

P R O J E K T N I R A D

iz predmeta:

M U L T I M E D I J A L N I S I S T E M I

zadatak: Virtuelna multimedijalna biblioteka Studenti: Asistent: Vladimir Javorina, 80/02 Vladimir Risojević Milan Babić, 45/02

Page 2: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

UVOD

U okviru laboratorijskih vježbi iz predmeta Multimedijalni sistemi upoznali smo se

sa programskim alatom Macromedia Director 2004 kao i sa elementima Lingo

programiranja. Naša zadaća je bila izrada virtuelne multimedijalne biblioteke koristeći

gore pomenuti alat i Lingo programiranje. Ovdje je dat kratak opis našeg rješenja sa nekim

screenshot-ovima radi efikasnije prezentacije.

KRATAK OPIS

Odlučili smo da će naše rješenje podržavati prikaz i reprodukciju nekih formata

audio i video sadržaja, neke formate slika, te DVD filmove. Da bi naša aplikacija radila

na najbolji mogući način potrebno je na C:\ kreirati folder projektni i unutar

njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije prvog

pokretanja aplikacije unesite slovo vašeg drajva (UPPER CASE, tj. veliko slovo). To će se

nadalje čuvati u pomenutom fajlu. Na slici je prikazano kako naša aplikacija izgleda kada

se pokrene:

Page 3: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

Početna strana je neka vrsta menija gdje korisnik može da izabere sa kojim tipom

sadržaja želi da radi. Odabir se vrši isključivo kada se klikne na sličicu. Kada se odabere

jedno od ponuđenih polja boja pozadine tog polja postaje žuta i ostaje takva dok god se ne

odabere neko drugo polje. Klikom na jednu od sličica dobijaju se sljedeće situacije:

• Na ovoj slici je prikazano kakav je izgled interfejsa kada se u meniju izabere

AUDIO. Kao što se vidi postoje:

o dugmići koji služe za reprodukciju,

o dugmići koji omogućavaju dodavanje, odnosno uklanjaje audio sadržaja,

o flashcomponent List koji je inicijalno prazan, a u koji će se upisivati nazivi

i ekstenzije fajlova koje smo dodali,

o te nadasve “moćna“ GIF animacija.

Page 4: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

• Na ovoj slici je prikazan izgled interfejsa kada se u meniju izabere SLIKE. Tu su:

o dugmići koji služe za navigaciju,

o dugmići za dodavanje, odnosno uklanjanje slika,

o flashcomponent List koji je inicijalno prazan, a u koji će se upisivati nazivi

i ekstenzije fajlova koje smo dodali, te

o dugme koje služi za prikazivanje odabrane slike; prikaz se vrši u desnom

dijelu interfejsa.

Page 5: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

• Na ovoj slici prikazan je izgled interfejsa kada se u meniju izabere VIDEO. Ovdje

postoje dugmići za reprodukciju video sadržaja koji će biti prikazan u desnom

dijelu, te standardni dugmići koji omogućavaju dodavanje odnosno uklanjanje

fajlova, te neizbježni flashcomponent List koji je inicijalno prazan, a u koji će se

upisivati nazivi i ekstenzije fajlova koje smo dodali.

Page 6: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

• Na ovoj slici prikazan je izgled interfejsa kada se u meniju izabere DVD. Kao što

se vidi tu su dugmići koji služe za reprodukciju i dugmići Meni i Full screen.

Dugmići Meni i Full screen će raditi samo ako je dvd film pokrenut, tj. kada

pritisnete Meni pojavljuje se meni filma kojeg ste pokrenuli, a ako pritisnete Full

screen film kojeg ste pokrenuli se prikazuje preko cijelog ekrana. Za izlaz iz Full

screen moda potrebno je pritisnuti dugme Esc na tastaturi. Film će biti prikazan

otprilike u centru ekrana i na to mjesto će se vratiti kada izađete iz Full screen

moda.

Page 7: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

RIJEČ-DVIJE O ČUVANJU, REPRODUKCIJI I FORMATIMA FAJLOVA

Kada je riječ o čuvanju fajlova, kao što je na početku spomenuto, opredijelili smo

se da apsolutne putanje fajlova koje dodamo u našu virtuelnu biblioteku čuvamo, u

zavisnosti od toga kojeg su tipa, u jednom od fajlova: audio.txt, video.txt i slike.txt, koji

će biti smješteni na C:\ . U fajl dvd.txt upisaćete slovo drajva koji čita dvd diskove. Kada

se aplikacija pokrene i ako odaberete jedno od polja AUDIO, SLIKE ili VIDEO vršiće se

čitanje jednog od fajlova audio.txt, video.txt ili slike.txt i sadržaj će biti prikazan u

flashcomponent List u zavisnosti koje ste od ponuđenih sadržaja odabrali. Ukoliko su

pomenuti fajlovi prazni, u flashcomponent List-i će pisati “Lista je prazna”. Ako ste se u

meniju odlučili za DVD, pritiskom na će se pročitati sadržaj fajla dvd.txt, tj. saznaće

se kojim je slovom obilježen vaš drajv koji čita dvd diskove i reprodukovaće se film. Kao

što se vidi iz predthodnog odjeljka svrha dugmića dodaj i ukloni je jasna, međutim, ovdje

ćemo prikazati i neke skrivene adute istih. Klikom na dugme dodaj dobija se sljedeća

situacija:

Page 8: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

Kada se odabere željeni audio fajl njegova apsolutna putanja se upisuje u audio.txt, a

naziv fajla i ekstenzija će biti prikazani u flashcomponent List. Fajl audio.txt će biti

ažuriran svaki put kada se pritisne dugme dodaj i izabere željeni fajl. Slijedi dio koda koji

sve ovo podržava:

on mouseUp me if(AL.count<>0 and not voidP(sprite(13).getSelectedIndex()))then ind=integer(_movie.sprite(13).selectedIndex) end if f=new xtra("fileio") aPut=f.displayOpen() if(aPut<>Void) then if(aPut contains ".mp" or aPut contains ".wav" or aPut contains ".wma" or aPut contains ".rm" or aPut contains ".m4a") then AL.add(aPut) ALpolje.add(vratiImeFajla(aPut)) fajl=new xtra("fileio") fajl.createFile("C:\projektni\audio.txt") fajl.openFile("C:\projektni\audio.txt",2) fajl.writeString("") fajl.writeString(string(AL)) fajl.closeFile() member("audio_polje").labels=ALpolje member("audio_polje").data=AL end if end if if(pjesmaIde=true or pjesmaPauza=true)then fajl1=audioFajl.fileName repeat with i=1 to AL.count if(fajl1=AL[i] and ind=(i-1))then sprite(13).setSelectedIndex(i-1) end if end repeat end if end on vratiImeFajla(apsolutnaP) ImeFajla=apsolutnaP repeat while ImeFajla contains "\" indikator=offset("\",ImeFajla) ImeFajla=chars(ImeFajla,indikator+1,ImeFajla.length) end repeat return ImeFajla end

Dugme ukloni takođe ima skrivenu opciju ažuriranja fajla. Klikom na ovo dugme iz datog

fajla (npr. C:\projektni\audio.txt.) se uklanja putanja fajla kojeg je korisnik odabrao u

flashcomponent List-i i vrši se ažuriranje ovog fajla (C:\projektni\audio.txt). Kod je isti

kao u prethodnom slučaju. Probajte ovo na praktičnom primjeru.

vrši ažuriranje fajla

svodi apsolutnu putanju samo na

ime_fajla.ekstenzija

Page 9: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

Što se tiče dugmića za reprodukciju audio fajlova rukovodili smo se rješenjem koje je

primjenjeno kod Winamp-a. Ukratko, dugme vraća na prethodnu pjesmu, a ukoliko

je odabrana prva pjesma u listi, onda ide na posljednju. Kod za to je:

ind=integer(_movie.sprite(13).selectedIndex) if(ind=0)then fajl=AL.getAt(AL.count) sprite(13).setSelectedIndex(AL.count-1) else fajl=AL.getAt(ind) sprite(13).setSelectedIndex(ind-1) end if

Slična je situacija kod dugmeta samo što se sada vrši prelazak na sljedeću pjesmu, a

ukoliko je odabrana posljednja pjesma u listi, prelazi se na prvu. Kod za to je:

ind=integer(_movie.sprite(13).selectedIndex) if(AL.count>ind+1)then fajl=AL.getAt(ind+2) sprite(13).setSelectedIndex(ind+1) else fajl=AL.getAt(1) sprite(13).setSelectedIndex(0) end if

Ukoliko je pjesma pokrenuta i ako pritisnete dugme ili zaustavićete

reprodukciju te pjesme, izvršiće se prelazak na prethodnu, odnosno sljedeću pjesmu i ta

pjesma će biti pokrenuta automatski. Situacija je identična ako je pjesma bila pauzirana.

Ukoliko je pjesma bila stopirana i ako ste pritisnuli jedan od ova dva dugmića izvršiće se

prelazak na prethodnu, odnosno sljedeću pjesmu, koju potom, ukoliko želite, možete

pokrenuti pritiskom na dugme . Probajte ovo praktično. Slijedi kod za dugme

koji ovo omogućuje:

if(pjesmaIde and not voidP(sprite(13).getSelectedIndex()))then sound(1).stop() ind=integer(_movie.sprite(13).selectedIndex) if(AL.count>ind+1)then fajl=AL.getAt(ind+2) sprite(13).setSelectedIndex(ind+1) else fajl=AL.getAt(1)

Page 10: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

sprite(13).setSelectedIndex(0) end if if(fajl contains ".wma") then audioFajl=_movie.newMember(#windowsMedia) else if(fajl contains ".rm") then audioFajl=_movie.newMember(#realMedia) else audioFajl=_movie.newMember(#sound) end if audioFajl.fileName=fajl sound(1).play(audioFajl) else if(pjesmaPauza and not voidP(sprite(13).getSelectedIndex()))then sound(1).stop() ind=integer(_movie.sprite(13).selectedIndex) if(AL.count>ind+1)then fajl=AL.getAt(ind+2) sprite(13).setSelectedIndex(ind+1) else fajl=AL.getAt(1) sprite(13).setSelectedIndex(0) end if if(fajl contains ".wma") then audioFajl=_movie.newMember(#windowsMedia) else if(fajl contains ".rm") then audioFajl=_movie.newMember(#realMedia) else audioFajl=_movie.newMember(#sound) end if audioFajl.fileName=fajl sound(1).play(audioFajl) pjesmaIde=true pjesmaPauza=false else if(pjesmaIde=false and pjesmaPauza=false and not voidP(sprite(13).getSelectedIndex()) and AL.count<>0)then ind=integer(_movie.sprite(13).selectedIndex) if(AL.count>ind+1)then sprite(13).setSelectedIndex(ind+1) else sprite(13).setSelectedIndex(0) end if end if

Page 11: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

Razvijajući ovu aplikaciju primjetili smo nekoliko, za nas bitnih, situacija. Ukoliko ste u

meniju odabrali AUDIO i ukoliko ste pokrenuli neku od pjesama iz liste ta pjesma će biti

markirana zelenom bojom. Međutim, ako dodate neku pjesmu u listu, marker sa pjesme

koja je pokrenuta će nestati. Ovako nešto se nama nije svidjelo, pa smo težeći što boljem

rješenju odlučili da se marker zadrži na onoj pjesmi koja je pokrenuta bez obzira na to da

li želite da dodate novu pjesmu u listu ili želite da uklonite neku od pjesama iz liste.

Pjesmu koja je pokrenuta ili pauzirana nije moguće ukloniti, a ako to pokušate dobićete

alert s odgovarajućom porukom. Situacija je slična ukoliko ste u meniju odabrali SLIKE

ili VIDEO, samo što smo kod slika omogućili uklanjanje slike koja je prikazana.

Napominjemo da ukoliko želite pustiti pjesmu, film ili prikazati sliku morate selektovati

stavku u flashcomponent List-u, ako ovo ne učinite dobićete alert s odgovarajućom

porukom. Takođe, napominjemo da ukoliko ste u meniju izabrali DVD trebate ubaciti dvd

film u vaš drajv, a potom pritiskom na dugme pokrećete film. Probajte ovo

praktično. Slijedi dio koda za uklanjanje pjesme:

on mouseUp me if(AL.count()<>0 and not voidP(sprite(13).getSelectedIndex()))then if(AL.count()=1)then if(pjesmaIde=true or pjesmaPauza=true)then alert "Ne mozete ukloniti pjesmu koja se reprodukuje ili je pauzirana!" else AL.deleteAt(1) ALpolje.deleteAt(1) Pomlista.add("Lista je prazna") member("audio_polje").labels=Pomlista Pomlista=[] member("audio_polje").data=Pomlista fajl=new xtra("fileio") fajl.createFile("C:\projektni\audio.txt") fajl.openFile("C:\projektni\audio.txt",2) fajl.writeString("") fajl.writeString(string(AL)) fajl.closeFile() end if

slučaj kada je jedan element u

listi -----------------------

provjera da li pjesma ide ili je

pauzirana i odgovarajući alert -----------------------

pjesma nije ni pokrenuta ni

pauzirana

Page 12: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

else if(pjesmaIde=true or pjesmaPauza=true)then fajl1=audioFajl.fileName repeat with i=1 to AL.count if(fajl1=AL[i])then ind=integer(sprite(13).getSelectedIndex()+1) if(i>ind)then AL.deleteAt(ind) ALpolje.deleteAt(ind) member("audio_polje").data=AL member("audio_polje").labels=Alpolje fajl=new xtra("fileio") fajl.createFile("C:\projektni\audio.txt") fajl.openFile("C:\projektni\audio.txt",2) fajl.writeString("") fajl.writeString(string(AL)) fajl.closeFile() sprite(13).setSelectedIndex(i-2) else if(i<ind)then AL.deleteAt(ind) ALpolje.deleteAt(ind) member("audio_polje").data=AL member("audio_polje").labels=ALpolje fajl=new xtra("fileio") fajl.createFile("C:\projektni\audio.txt") fajl.openFile("C:\projektni\audio.txt",2) fajl.writeString("") fajl.writeString(string(AL)) fajl.closeFile() sprite(13).setSelectedIndex(i-1) else alert "Ne mozete ukloniti pjesmu koja se reprodukuje ili je pauzirana!" exit repeat end if end if end repeat else ind=sprite(13).getSelectedIndex() AL.deleteAt(ind+1) ALpolje.deleteAt(ind+1) member("audio_polje").data=AL member("audio_polje").labels=ALpolje fajl=new xtra("fileio") fajl.createFile("C:\projektni\audio.txt") fajl.openFile("C:\projektni\audio.txt",2) fajl.writeString("") fajl.writeString(string(AL)) fajl.closeFile() end if end if else

slučaj kada je u listi više od jednog

elementa -----------------------

provjera da li pjesma ide ili je

pauzirana -----------------------

provjera da li je tekuća pjesma na većoj poziciji od pjesme koju smo

odabrali za uklanjanje

slučaj kada je u listi više od jednog

elementa -----------------------

pjesma nije ni pokrenuta ni

pauzirana

Page 13: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

if(AL.count<>0)then alert "Izaberite pjesmu!" end if end if Kao što smo spomenuli ranije, ukoliko ste odabrali da radite s DVD sadržajem i ukoliko

ste pokrenuli dvd film možete ga, ako kliknete na dugme Full screen, prikazati preko

cijelog ekrana. Slijedi dio koda koji ovo omogućuje:

on mouseUp me if(dvdIde=true)then dvdFajl.fullScreen=dvdFajl end if end Potrudili smo se da podržimo što je moguće više tipova za audio i video sadržaje, ali i za

slike. Tako smo kod audio sadržaja obezbijedili podršku za fajlove sa sljedećim

ekstenzijama:

o .mp (dakle mp3, mp4 itd), .wav, .wma, .rm kod video sadržaja obezbijedili smo podršku za fajlove sa sljedećim ekstenzijama:

o .mpeg, .mpg, .avi, .mov, .qt, .wmv, .rm, .3gp, dok smo kod slika podržali fajlove sa sljedećim ekstenzijama:

o .bmp, .jpg, .jpeg, .tif, .gif Iz nama nepoznatih razloga nismo mogli da pokrenemo fajlove sa ekstenzijom .wma, pa

smatramo da je to jedan od propusta Director-a. Što se tiče fajlova s ekstenzijom .3gp

možemo samo reći da smo ih preuzeli s mobilnog telefona i uspješno ih prikazali na

kompjuteru na kojem smo i razvijali ovu aplikaciju.

Page 14: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

ZAVRŠNA RIJEČ

Ovjde ćemo prikazati “članove ekipe” i Score window uz komentar kako se stvari

odvijaju tokom trajanja aplikacije.

Na ovoj slici su prikazani “članovi ekipe” i script-ovi koji su im dodjeljeni. Članove ekipe

uglavnom čine dugmići, sličice, po neki tekst i jedna gif animacija.

Page 15: MMS - Projektni rad · na najbolji mogu ći na čin potrebno je na C:\ kreirati folder projektni i unutar njega fajlove audio.txt, video.txt, slike.txt i dvd.txt. U fajl dvd.txt prije

Multimedijalni sistemi

Na ovoj slici su prikazani sprajtovi i markeri koje smo koristili u ovoj aplikaciji. Sprajtovi

od 1 do 12 postoje dok aplikacija traje, a markeri Audio, Slike, Video i DVD su zaduženi

za preostale sprajtove. Kada se pokrene aplikacija dobijamo neku vrstu menija (pomenuto

na početku) i tu ostajemo sve dok ne kliknemo na neku od sličica u poljima AUDIO,

SLIKE, VIDEO ili DVD. Kada izaberemo jedan od ponuđenih sadržaja “skače” se na

odgovarjući marker. Ako smo npr. u meniju izabrali AUDIO onda se izvršio skok na

marker Audio i sprajtovi od 13 do 21 će postojati dok se ne klikne na neku drugu sličicu iz

menija. Analogno je ako ste odabrali SLIKE, VIDEO ili DVD, samo što će sada sprajtovi

od 13 do 18, odnosno od 13 do 20, odnosno od 13 do 17 postojati dok je odabrano polje

aktivno.

Literatura:

o Director Scripting Reference

o World Wide Web