Lucrul cu sunetul în Android (scrierea motorului partea 7), programarea pentru Android, java - chiar de la

De fapt, lucrul cu sunetul este un nume prea mare pentru acest articol. De fapt, în momentul în care am scris acest joc, am avut nevoie de melodii de fundal și sunete de clic pe ecran. Ei bine, am ajuns la ajutorul pe Android SDK. Băieții de la Google oferă astfel de utilizări pentru clasa SoundPool. Cu toate acestea, într-un fel nu am lucrat cu el. Dacă am citit certificatul cu atenție sau altceva, nu știu ... Și am decis să arunc câteva dintre propriile clase mici pentru a rezolva această problemă care nu epochimică. De fapt, despre aceste clase, vorbim acum.







În primul rând, să descriem o clasă mică mSoundTrack. care va fi responsabil pentru redarea unui sunet. De fapt, este doar un pachet pentru clasa MediaPlayer. Iată codul său:

Acum, hai să aruncăm o privire mai atentă, pentru ce e acolo. Există câte trei variabile, această piesă este o instanță a clasei MediaPlayer. nume - un șir de caractere în care vom păstra numele piesei și care poate fi redat boolean - care este responsabil pentru, dacă este posibil să se reproducă sunetul special sau nu (pe care le va dura clar un pic mai târziu).

Mergem mai departe ce metode avem aici? Să începem în ordine: start () - o metodă care începe redarea sunetului. Dacă sunetul a fost întrerupt, atunci redarea continuă din locul unde s-a oprit sunetul. forceStart () metodă diferă de cea anterioară, că în cazul în care un sunet redat în prezent, rebobinarea are loc la începutul pistei, iar sunetul este redat de la început. Ambele metode verifică dacă sunetul este inclus în clasa de setări globale mSettings înainte de a fi rulat.







Următoarea metodă stop () - Nu știu de ce am numit-o "oprire", deoarece de fapt doar pauze sunetul. De fapt, cred că a meritat atât de mult și a numit-o pauză 🙂 Dar am putut vedea toate aceste lucruri scrise în mijlocul nopții, deci nu sunt acceptate plângeri :). Metoda Rewind () nu conține, de asemenea, niciun fel de revelații și redă pur și simplu sunetul la început. Cele două metode sunt Playable () și setPlayable (boolean playable), respectiv verificați și setați starea piesei în redare. Ei bine, metoda getName () returnează pur și simplu numele piesei. Asta e tot pentru piesa noastră. Deci, jucătorul nostru are piese și putem pierde, pauză sau derula cu ușurință la început. Se pare că pentru scopurile noastre mai mult nu este necesar! Dar nu, de fapt, în joc (și de fapt, nu ați uitat că este încă o parte a motorului nostru de joc?) Este mult mai convenabil să aveți niște mijloace comune pentru pornirea și redarea sunetelor.

Aceasta înseamnă următoarea noastră clasă: mPlayer. Voi începe de la obiceiul codului său:

Prea dificil! Clasa are o listă statică de piste și o metodă pentru adăugarea unei piste în listă - addTrack (). În plus, există o metodă care returnează o piesă după numele său - getTrackByName (Nume șir). dacă un astfel de nume nu apare, atunci null este returnat. Ei bine, de fapt, de dragul a ceea ce toate acestea au fost pornit: metoda rula toate piesele (la pornire se verifică dacă starea pistei fiind jucat) și metoda de oprire toate piesele. Pentru a scrie un joc complex, acest manager de sunet simplu sa dovedit destul de bun!

Ți-a plăcut? A fost util? Distribuiți!







Articole similare

Trimiteți-le prietenilor: