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.


Klippide mängimine

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.


Klipi mängimine automaatse korduskäivitusega

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

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:


Efektide kasutamine visuaalsete klippide puhul

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"


Klippide kerimine

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"


Tehniline info klippide kohta

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

end buttonClick

to handle idle

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).


Ülevaade programmi töökeskkonnast, Erinevad objektid ja nende omadused.