IPRO - PC Magazine Romania, Ianuarie 2003
SOLUȚII PENTRU PROGRAMATORII ȘI DESIGNERII WEB
Zgomote de fond sau cum se folosesc sunetele în Flash
Ioan Alexandru Lazăr
Vă mai amintiți de paginile web de acum câțiva ani? Practic, nu era nici o
problemă dacă opreați boxele în timp ce navigați pe internet. Ba, de fapt, puteați
să le scoateți din priză și să le puneți la naftalină.
Acum însă, totul s-a schimbat. Mai ales dacă folosiți tehnologia flash pentru
a vă realiza paginile web, sunetele au devenit o necesitate, astfel încât e
o idee bună să mai puneți un ,,pâs!" din pagină în pagină.
Cu toate acestea, sunetele în cazul flash reprezintă un lucru relativ complicat.
Nu pentru că ar fi nevoie de cine știe ce cunoștințe muzicale, ci pentru că,
oricât de rapide ar fi modemurile actuale, nu pot suporta un ,,streaming" constant
de muzică la calitate CD. De aceea, înainte de a începe să inserați sunete peste
sunete, e bine să vă gândiți puțin.
Tipuri și tipuri...
În flash există două tipuri de sunete. Acestea sunt "event-sound" (o să le numim
sunete-eveniment) și "streaming-sounds". Un sunet-eveniment trebuie să fie transferat
complet înainte de a fi redat. Un "streaming-sound" este un sunet care va începe
să fie redat imediat ce primele frame-uri au fost transferate, și este sincronizat
direct cu timeline-ul scenei. Un sunet-eveni- ment se sincronizează cu evenimentele
din scenă. De exemplu, atunci când utilizatorul apasă pe un buton, un sunet-eveniment
se poate declanșa. Practic, sunetele-eveniment sunt independente de film, ele
putând fi controlate de acțiuni. În schimb, un "streaming-sound" este dependent
de film, în sensul că este sincronizat cu animația. Atunci când cadrele nu pot
fi afișate destul de repede ca să țină pasul cu sunetele, sunt sărite pur și
simplu; un "streaming-sound" nu poate fi redat mai mult timp decât frame-urile
pe care le ocupă.
ActionScript și proprietăți
Cine a lucrat în ActionScript în ultimul timp, știe probabil că este vorba de
un limbaj orientat spre multimedia. Într-adevăr, sunetele sunt tratate foarte
atent în Action Script, dar am de gând să prezint numai câteva instrucțiuni.
Înainte de a trece însă la partea de programare adevărată, ar trebui să ne uităm
la partea simplă a lucrurilor. Importarea unui sunet se face prin File>Import.
Sunetului importat i se pot aplica o serie de efecte simple. Flash vine cu unele
efecte predefinite, dar aceia care nu sunt mulțumiți de ele pot să realizeze
altele. Evident, nu trebuie să vă așteptați la cine știe ce efecte complicate,
dar un web-designer va fi mai mult decât mulțumit cu cele existente.
Totuși, unii doresc să folosească sunetele la lucruri mai complicate. Așa că
haideți să ne uităm puțin la partea de programare. Apropo, cine citește acest
articol și nu folosește Flash MX ar trebui să facă rost de el. Există unele
metode noi în Flash MX și ar fi o idee bună să le aveți la dispoziție.
Pentru a putea folosi un sunet în ActionScript, se folosește obiectul ,,Sound".
Acest obiect trebuie folosit dacă aveți nevoie de un sunet (sunetul trebuie
să se afle în library) care să fie apelat în timpul executiei unui program,
dar nu chiar la început. Altfel, pentru un "streaming-sound" pe post de fundal
muzical, puteți să importați pur și simplu sunetul. Pentru a creea o instanță
a acestui obiect, se folosește constructorul newSound.
Metoda mySound.attachSound - cu parametrul ("nume_id") - se folosește pentru a
atașa sunetul nume_id obiectului Sound. Nume_id se definește în caseta ,,Linkage"
(pentru a o afișa se face click-dreapta pe numele sunetului din Library). Pentru
a începe redarea sunetului se folosește metoda Sound.start.
Asupra sunetelor de tip streaming, se pot aplica metodele Sound.getSoundTotal,
Sound.getBytesLoaded. Folosind aceste două metode, se pot determina numărul
total de bytes al sunetului, respectiv numărul de bytes încărcați. Comparând
rezultatele ,,întoarse" de metode, se poate afla numărul de procente în care
sunetul a fost încărcat (rețineți însă că este vorba de un sunet streaming).
Aș vrea să mai discutăm despre alte trei lucruri: Sound.onSoundComplete, Sound.position
și Sound.duration. Proprietatea Sound.duration definește durata sunetului, în
milisecunde. Sound.position întoarce numărul de milisecunde de la începutul
sunetului. Aceste două proprietăți le sunt utile celor care dezvoltă ,,playere"
pe web, adică playere care să funcționeze online.
Event-ul (evenimentul) Sound.onSoundComplete este invocat automat atunci când
redarea unui sunet a fost încheiată. Acest eveniment poate fi folosit pentru
a declanșa alte evenimente într-un program, pe baza încheierii redării unui
sunet. Se poate folosi și evenimentul Sound.onLoad pentru a declanșa un alt
eveniment, atunci când încărcarea sunetului a fost terminată (din nou funcție
utilă celor care realizează playere online).
Lucruri foarte-foarte mici
În fine, trebuie să discutăm despre comprimarea sunetelor înaintea exportului.
Cine vrea să sară peste partea aceasta, o face pe riscul lui - pe web, sunetele
se încarcă destul de greu.
Flash folosește mai multe modalități de compresie, pentru o serie de tipuri
de sunete. Aceste modalități de compresie trebuie înțelese perfect pentru o
aplicare corectă.
Pentru a modifica modul de compresie a unui sunet, faceți click-dreapta pe sunetul
din "library", și alegeți "properties". Modalitățile de compresie sunt: Default,
ADPCM, MP3, RAW și Speech. Default (implicit) comprimă sunetul folosind modalitatea
de compresie definită în Publish Settings. ADPCM folosește o serie de formule
matematice pentru a atinge rate de compresie de 4:1, reducând numărul de biți
necesari pentru redarea unui semnal. Spre exemplu, dacă aplicăm compresia ADPCM
unui sunet pe 24 biți, rezultatul va fi un sunet pe 8 biți (soluție cam radicală,
dar excelentă). MP3 este folosit atunci când vreți să exportați sunete streaming
foarte lungi. De fapt, bănuiesc că sunteți familiar cu compresia MP3. Este bine
să dezactivați opțiunea ,,Use Imported MP3 Quality". RAW exportă sunetul la
o anumită rată. Cea de 5 KHZ este cea mai mică, și este total nerecomandată
pentru că rezultatul este neinteligibil. 11 KHZ este cea mai mică rată acceptabilă,
22 KHZ cea mai răspândită pe web, iar 44 KHZ este calitatea CD. În fine, Speech
reprezintă o modalitate de compresie special adaptată vorbirii.
Resurse
Evident, aici nu am intenționat decât o prezentare generală. Pentru a afla mai
multe, puteți să aruncați o privire la:
www.flashkit.com - un
sit cu mai multe tutoriale pe tema sunetelor.
www.macromedia.com -
situl Macromedia, cei care au realizat Flash. Documentație extrem de cuprinzătoare.
www.actionscript.org
- foarte multe tutoriale pentru avansați, unele legate de sunete.
|