Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Izradite Muzički Player na Androidu: Podešavanje Projekta

by
Difficulty:BeginnerLength:LongLanguages:

Croatian (Hrvatski) translation by Maja Petek (you can also view the original English article)

Android platforma pruža resurse za upravljanje reproduktorom medija, koji vaše aplikacije mogu koristiti za izradu sučelja između korisnika i njihovih muzičkih datoteka. U ovoj seriji tutoriala, kreirati ćemo aplikaciju, osnovni muzički player za Android. Aplikacija će prikazivati popis pjesama na uređaju korisnika, tako da korisnik može odabrati pjesme koje želi pokrenuti. Aplikacija će također prikazivati kontrole za interakciju sa reproduktorom i nastaviti će izvođenje kada korisnik izađe izvan aplikacije, sa notifikacijama prikazanim dok se izvođenje nastavlja.

Uvod

Izgradnja muzičkog playera uključivati će ContentResolver klasu za pristupanje pjesmama na uređaju, MediaPlayer klasu za pokretanje audia i MediaController klasu za upravljanje reprodukcijom. Također ćemo upotrijebiti Service instancu za pokretanje audio sadržaja kada korisnik nije u direktnoj interakciji sa aplikacijom. Ako ste srednje napredni Android razvojni programer, trebali biste biti u mogućnosti završiti ove serije, pa ako ste već izgradili nekoliko aplikacija, ove serije vam ne bi trebale predstavljati problem. Evo pregleda završene aplikacije:

Android Music Player

U ovom tutorialu ćemo izraditi aplikaciju i ispitati korisnikov uređaj za audio datoteke koristeći ContentResolver i Cursor klase. U sljedećem dijelu ćemo koristiti Adapter instancu da prezentiramo pjesme u preglednoj listi, počevši reproduciranje kada korisnik dotakne pjesmu na listi. U završnom nastavku ovih serija, upotrijebiti ćemo MediaController klasu kako bismo korisniku omogućili kontrolu nad reproduciranjem, implementiramo funkcije za prebacivanje naprijed i nazad, i uključimo 'shuffle' funkciju. Nakon tih serija, istražiti ćemo druge aspekte reproduciranja medija koji mogu unaprijediti aplikaciju, poput upravljanja audio fokusom, prezentiranja medijskih datoteka na različite načine, i izvođenje 'streaming' medija.

1. Izradite i Konfigurirajte Novi Projekt

1. korak

Izradite novi Android projekt. Ako koristite Eclipse, dopustite da IDE (Integrated Development Environment) kreira za vas glavnu Activity klasu i 'layout' datoteku. Za neki od kodova koje koristimo u serijama, trebati ćete minimalno API razinu 16, stoga ćete trebati napraviti dodatne korake kako bi podržali starije verzije. Nakon što je projekt kreiran, otvorite Manifest datoteku projekta. Unutar manifest elementa, dodajte sljedeću dozvolu:

Upotrijebiti ćemo ovu dozvolu kako bismo omogućili nastavak reprodukcije kada korisnikov uređaj prijeđe u stanje mirovanja. Vaš Manifest trebao bi već sadržati element za glavnu Activity klasu. Dodajte sljedeće atribute activity elementu da podesite screenOrientation i launchMode:

Zbog jednostavnosti ćemo se držati portret orijentacije. LaunchMode će pomoći procesu navigacije nazad na aplikaciju nakon udaljavanja od nje. Prikazati ćemo notifikaciju koja pokazuje pjesmu koja se trenutno reproducira, i dodir na notifikaciju će korisnika vratiti nazad na aplikaciju. Također ćemo upotrijebiti Service klasu za reproduciranje muzike. Dodajte sljedeću liniju manifestu unutar application elementa i nakon activity elementa:

Uredite ime paketa po vlastitoj želji i promijenite klasu imena ako želite.

2. korak

Otvorite glavnu 'layout' datoteku projekta i zamijenite njezin sadržaj sa sljedećim izgledom:

Pripazite da promijenite tools:context atribut ukoliko je vaša glavna Activity klasa nazvana drugačije. Izgled uključuje ListView gdje ćemo prikazati popis pjesama.

Uključiti ćemo dva izbornika za uključenje 'shuffle' funkcije i za izlaz iz aplikacije. Otvorite svoju glavnu datoteku izbornika (res/menu/main.xml) i zamijenite joj sadržaj sa sljedećim:

Ako želite, možete pohraniti nizove naslova u res/values/strings.xml datoteci. Dvije stavke se odnose na 'drawable' datoteke. Kreirajte vlastite ili upotrijebite ove dvije slike za početak:

Android Music Player Random Button
Android Music Player End Button

Također ćemo upotrijebiti ikonu za prikaz u notifikacijama reproduktora. Kreirajte jednu sada ili upotrijebite ovu ispod:

Android Music Player Play Button

Kod će se odnositi na slike koristeći imena rand, end, i play stoga pripazite da upotrijebite datoteke istih imena. Kopirajte slike u 'drawable' mapu (mape) vašeg projekta. Akcije ćemo implementirati kasnije.

2. Pretražite Uređaj za Pjesme

1. korak

Pretražimo uređaj korisnika za audio datoteke. Prvo, projektu dodajte novu klasu kojoj dodijelite ime Song. Upotrijebiti ćemo ovu klasu da modeliramo podatak za jednu audio datoteku. Unutar deklaracije klase, dodajte tri varijable instance za podatke koje želite pohraniti za svaku pjesmu:

Zatim, dodajte konstruktor metodu u kojoj ćemo instancirati varijable instance:

I konačno, dodajte get metode za varijable instance:

Ako planirate upotrijebiti više informacija za praćenje, klasi možete dodati dodatne varijable instance.

2. korak

Otvorite glavnu Activity klasu i dodajte sljedeće unose:

Deklarirajte sljedeće varijable instance prije onCreate metode:

Pohraniti ćemo pjesme na popis i prikazati ih u ListView instanci u glavnom izgledu. U onCreate, nakon podešavanja pregleda sadržaja, vratite ListView instancu koristeći ID koji smo joj dodijelili u glavnom izgledu:

Instancirajte listu kao što je prikazano ispod:

Zatim, u glavnoj Activity deklaraciji klase, nakon postojećih metoda, kreirajte pomoćnu metodu da vratite informaciju audio datoteke:

Unutar ove metode, izradite ContentResolver instancu, povratite URI za vanjske muzičke datoteke i izradite Cursor instancu koristeći ContentResolver instancu da potražite muzičke datoteke:

Sada možemo iterirati preko rezultata, provjeravajući prvo imamo li valjane podatke:

Prvo dohvaćamo indekse kolumni za podatkovne stavke koje nas zanimaju za svaku pjesmu, zatim ih koristimo za izradu novog Song objekta i dodajemo na popis, prije nego što nastavimo prolaziti kroz rezultate.

Natrag u onCreate, nakon koda koji smo dodali, pozovite ovu novu metodu:

3. Prikažite Pjesme

1. korak

Sada možemo prikazati popis pjesama u korisničkom sučelju. U onCreate metodi, nakon pozivanja pomoćne metode koju smo kreirali malo prije, sortirajmo podatke tako da se pjesme prikazuju abecednim redom:

Koristimo title varijablu u Song klasi, koristeći get metode koje smo dodali, da implementiramo compare metodu, sortirajući pjesme po nazivu.

2. korak

Definirajmo izgled za prikazivanje svake pjesme na popisu. Dodajte novu datoteku res/layout mapi projekta, nazovite je song.xml i unesite sljedeće:

Izgled možete prilagoditi po vlastitoj želji. Svaka pjesma na popisu biti će prikazana po nazivu i izvođaču u tekstualnom nizu, stoga ćemo upotrijebiti TextViews da prikažemo ove podatke. Možete primijetiti da LinearLayout početni tag ispisuje onClick atribut. Ovu metodu ćemo upotrijebiti u glavnoj Activity klasi da reagira na dodir korisnika na popis pjesama, reproducirajući pjesmu koju je korisnik dodirnuo na popisu,

3. korak

Upotrijebiti ćemo Adapter da napravimo mapu pjesama na preglednoj listi. Svojoj aplikaciji dodajte novu klasu koju nazovite SongAdapter ili drugim imenom po vlastitom izboru. Kada kreirate klasu, dodijelite joj superklasu android.widget.BaseAdapter. Eclipse bi trebao ubaciti sljedeći 'outline':

Morati ćete dodati sljedeće unose:

Unutar deklaracije klase, deklarirajte sljedeće varijable instanci:

Proslijediti ćemo popis pjesama iz glavne Activity klase i upotrijebiti LayoutInflater da mapiramo nizove naslova i izvođača na TextViews u izgledu prikaza pjesama koji smo kreirali.

Nakon varijabli instance, dodijelite adapteru konstruktor metodu da ih instancirate:

Promijenite sadržaj getCount metode da vratite veličinu liste:

Metode getItem i getItemId možete ostaviti netaknute. Ažurirajte implementaciju getView metode kao što je prikazano ispod:

Podesili smo naslov i izvođača vraćanjem ispravne Song instance s liste koristeći pozicijski indeks, mapirajući ove nizove na prikaze koje smo dodali 'layout' datoteci pjesama. Također smo podesili poziciju kao karticu pregleda, koja nam omogućuje da reproduciramo ispravnu pjesmu kada korisnik klikne stavku na popisu. Ne zaboravite da je song.xml 'layout' datoteka uključivala onClick atribut. Tu metodu ćemo upotrijebiti da vratimo tag u Activity.

3. korak

Nazad u glavnoj Activity klasi, u onCreate metodi nakon sortiranja popisa, kreirajte novu instancu Adapter klase i podesite je na ListView:

Kada pokrenete aplikaciju, trebala bi na uređaju prikazati popis pjesama, klik na njih će uzrokovati da aplikacija na trenutak napravi kratku iznimku, ali mi ćemo implementirati upravljač klika u sljedećem tutorialu.

Zaključak

Sada smo podesili aplikaciju da čita pjesme s korisnikova uređaja. U sljedećem dijelu, početi ćemo reprodukciju kada korisnik odabere pjesmu koristeći MediaPlayer klasu. Implementirati ćemo reprodukciju koristeći Service klasu tako da nastavi dok korisnik vrši interakciju s drugim aplikacijama. Na kraju ćemo upotrijebiti MediaController klasu kako bismo korisniku omogućili upravljanje i kontrolu nad reprodukcijom.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.