Meediaklippide käsitlemine OpenScript keele abil
Kuna kõikvõimalikud meediafailid on surutud klippide haldaja (clip manager) abil ühise nimetaja “klipp” (clip) alla, siis on nende esitamine ehk mängmine meedialiigist sõltumatu ning ühtede ja samade käskude abil teostatav. Pisierinevusi tuleb ette vaid visuaalsete ja heliklippide vahel.
Enne klipi esitust oleks hea ta kõigepealt avada (kuigi mmPlay käsk mõjub ka avamata klipile).
Klipi avamiseks on käsk:
mmOpen clip “nimi”
Peale avamist on klipile võimalik rakendada kõiki teisi multimeedia käske:
mmPlay clip “nimi” [from positsioon] [to positsioon] [in stage “nimi”] [autoclose või hold või release] [wait] [notify objekt]
Klipi nimi on see, mille te klippide haldajat ning klipi editori kasutades antud klipile andsite. Klippi ei pea mängima täispikkuses, vaid mingist kohast (from positsioon) kuni teatud kohani (to positsioon). Visuaalseid klippe (pildi- ja videoklipid) saab mängida mingis kindlas “lavas” (stage), selleks tuleb kirjutada vastava “lava” nimi või ID number. Järgnevalt võib kasutada üht kolmest parameetrist:
Parameeter wait sunnib kogu süsteemi ootama, kuni klipi mängimine lõpetatakse ja alles siis annab võimaluse teisi käske täita.
Parameeter notify objekt tagab, et klipp saadab peale mängimise lõppu süsteemi nimetatud objektile mmNotify teate, mis võimaldab näiteks sama klipi kohest uuestimängimist.
Näiteks:
mmPlay clip "ocean scene" in stage "demoView" autoclose
mmPlay clip "orchestra" from "00:02" to "00:14" wait
mmPlay clip "film1" in stage "movie" hold
mmPlay clip “taustamusa” notify self
NB! Tuleb meeles pidada, et korraga ei saa mängida enam kui üks waveAudio või helimaterjali omav videoklipp (nende heliformaat ühtib), üks MIDI klipp ja üks CD Audio klipp!
mmStop clip “nimi” peatab nimetatud klipi mängimise, jättes klipi avatuks.
mmStop all peatab kõik parajasti mängivad klipid jättes nad siiski avatuks.
Näiteks:
mmStop clip "ocean scene"
Saab peatada ka üht liiki meedia klipid:
mmStop waveAudio
mmPause clip “nimi” peatab nimetatud klipi mängimise, kuid uuesti mmPlay rakendamine jätkab mängimist poolelijäänud kohalt.
mmPause all peatab kõik mängivad klipid.
Klippide sulgemiseks on käsud:
mmClose clip “nimi” sulgeb nimetatud klipi.
mmClose all sulgeb kõik avatud klipid.
Tihti on autoril soov, et näiteks taustamuusikaks valitud MIDI klipp mängiks üha uuesti ja uuesti, kuni tema “raamatut” vaadatakse. Selleks saab kasutada mmNotify teadet. Toome siinkohal vastava näite:
Raamatu skripti kirjutatakse käsk:
mmplay clip “taustamusa” notify self
Parameeter notify book tähendab siinjuures, et mängimise lõppedes saadetakse raamatule mmNotify teade.
Raamatu skripti tuleb sel juhul kirjutada järgmine töötleja:
to handle mmNotify parameeter1, parameeter2, parameeter3
if parameeter1 = clip “taustamusa” and parameeter3 = “successful”
mmplay clip “taustamusa” notify book
end if
end mmNotify
mmNotify töötleja vajab kolme parameetrit, esimest meediaklipi tähistamiseks, teist antud käsu tähistamiseks ja kolmandat käsu täitmise tulemuse tähistamiseks.
Tulemusel on neli võimalikku väärtust:
Visuaalsete klippide puhul saab nende ilmumisel “lavale” ja mängimise lõpetamisel kasutada efekte (preEffect ja postEffet), mida saab muidugi ka “lava” omadustes määrata, kuid mis OpenScript’i võimalusi kasutades iga üksiku klipi mängimiseks rohkem võimalusi pakuvad.
Töötlejasse, millest mängimine käivitatakse, tuleb enne mmPlay käsku defineerida soovitud eelefekt (preEffect) ja/või järelefekt (postEffect) järgmiste käskudega:
preEffect of stage “nimi” [of viide leheküljele või taustale] = “efekti kirjeldus” [at koordinaadid]
postEffect of stage “nimi” [of viide leheküljele või taustale] = “efekti kirjeldus” [at koordinaadid]
Efekti kirjeldus koosneb efekti tüübist, liikumise suunast, sihist ja kiirusest. Koordinaadid on lubatud vaid zoom efektil ja võimaldavad efekti alguspunkti määrata (vaikimisi on selleks “lava” keskpunkt).
Järgmine tabel sisaldab kõiki kasutatavaid efektide tüüpe koos nende suuna ja sihi võimalustega:
Efekti tüüp: |
Suund: |
Siht: |
blinds | pole kasutatav | pole kasutatav |
dissolve | pole kasutatav | pole kasutatav |
drip | pole kasutatav | pole kasutatav |
fade | pole kasutatav | pole kasutatav |
iris | pole kasutatav | pole kasutatav |
push | pole kasutatav | left, right, top, bottom |
puzzle | pole kasutatav | pole kasutatav |
rain | pole kasutatav | left, right |
slide | in, out | left, right, top, bottom |
spiral | in, out | pole kasutatav |
split | in, out | horizontal, vertical |
tear | pole kasutatav | left, right, top, bottom, horizontal, vertical |
turn page | pole kasutatav | left, right |
wipe | pole kasutatav | left, right, top, bottom |
zoom | in, out | left, right, bottom, top, lowerLeft, lowerRight, upperLeft, upperRight |
Kiiruseks võivad olla järgmised parameetrid: slow ehk aeglane; normal ehk normaalkiirus; fast ehk kiire ja speed millisekundid.
Näiteks:
preEffect of stage "demoView" = "split out horizontal fast"
postEffect of stage "demoView" = "dissolve fast" mmPlay clip “demovideo” in stage “demoView”
preEffect of stage "show" = "wipe left fast" postEffect of stage "show" = "zoom speed 2000"
Vahetevahel on klippi kerida mingile positsioonile nagu näiteks magnetofonilinti. Selleks on järgmised käsud:
mmSeek clip “nimi” to positsioon [from end] [wait]
See käsk kerib nimetatud klipi nõutud positsioonile. Parameeter from end sunnib kerimist alustama lõpust. Parameeter wait ei lase ühtki käsku enne täita, kui kerimine on lõpetatud.
Näiteks:
mmSeek clip "film1" to 10500 mmSeek clip "film1" to 200 from end
mmRewind clip “nimi” [wait]
kerib nimetatud klipi algusesse (kui see parajasti mängis, peatab enne seda ka mängimise). Parameeter wait ei lase enne kerimise lõppu teisi käske täita.
mmRewind all
kerib kõik parajasti avatud klipid algusesse.
mmStep clip “nimi” [back] by samm [wait]
kerib nimetatud klippi ettentud sammu võrra. Parameeter back sunnib etteantud sammu võrra tagasi kerima ja wait ei lase täita ühtki käsku enne kerimise lõppu.
Näiteks:
mmStep clip "film1" by "2000" mmSeek clip "film1" back by "0:03:00"
Kui on tarvis pärida tehnilist infot klippide kohta, siis on kasutada näiteks järgmised käsud:
mmStatus of clip “nimi”
annab teavet klipi hetkestaatuse kohta.
Staatus võimalikud väärtused on järgmised:
väärtus | Kirjeldus |
closed | Klipp pole avatud |
paused | Klipi mängimine on katkestatud mmPause käsuga |
playing | Klippi mängitakse |
seeking | Klippi keritakse |
stopped | Klippi pole mängima pandud või mängimine katkestati mmStop käsuga |
Näiteks:
if mmStatus of currentClip = "seeking" request "One moment please..." end if
get mmStatus of clip “taustamusa”
mmPosition of clip “nimi”
võimaldab klipi mängimise ajal idle teate töötlejas pidevalt pärida hetkepositsiooni, seda juhul, kui mmPlay käsk anti ilma wait parameetrita.
Näiteks:
to handle buttonClick
mmPlay clip "orchestra" in stage "movie"
end buttonClick
to handle idle
get mmPosition of clip “orchestra”
put it into text of field “position”
end idle
Sageli võib juhtuda, et kasutataval arvutil puudub näiteks helikaart, mis teeb MIDI ja waveAudio (digitaalsed helisalvestised) klippide mängimise võimatuks. Sellisel juhul tuleks enne klipi mängima panemise üritust kontrollida, kas antud klippi üldse antud arvutil kasutada saab. Selleks on järgmine käsk:
mmPlayable of clip “nimi”
võimalikud väärtused on true (tõene) ja false (väär).
Näiteks:
get mmPlayable of clip “jazz”
if mmPlayable of clip “rock” is true
Saab teha päringut ka klipi meedialiigi kohta:
mmMediatype of clip “nimi”
Võimalikud väärtused on: animation (animatsioon), bitmap (rastergraafika), cdAudio (CD heli-plaat), digitalVideo (digitaalne video), sequencer (MIDI), vcr (videolint), videodisc (videoplaat) või waveAudio (digitaalsed helisalvestised).