Android Mediaplayer Tutorial

Android gir mange måter å styre avspilling av lyd /video-filer og bekker. En av denne måten er gjennom en klasse som heter Mediaplayer
.

Android leverer Mediaplayer klasse for å få tilgang innebygd mediaplayer tjenester som å spille lyd, video e.t.c. For å bruke Mediaplayer, må vi kalle en statisk metode opprette ()
i denne klassen. Denne metoden returnerer en forekomst av Mediaplayer klasse. Syntaksen er som følger −
Mediaplayer Mediaplayer = MediaPlayer.create (dette, R.raw.song);

Den andre parameteren er navnet på sangen du vil spille. Du må lage en ny mappe under prosjektet med navn rå Hotell og plassere musikkfilen inn i den.

Når du har opprettet Mediaplayer objekt du kan ringe noen metoder for å starte eller stoppe musikk. Disse metodene er listet nedenfor
mediaPlayer.start ();. MediaPlayer.pause ();

På oppfordring til start ()
metoden, vil musikken begynner å spille fra begynnelsen. Hvis denne metoden kalles igjen etter pause ()
metoden, vil musikken begynner å spille fra der den blir stående og ikke fra begynnelsen.

For å starte musikk fra begynnelsen, du må ringe reset ()
metoden. Syntaksen er gitt nedenfor
mediaPlayer.reset ();.

Bortsett fra start og pause metode, det finnes andre metoder som tilbys av denne klassen for bedre håndtering av audio /video-filer. Disse metodene er listet nedenfor −
Sr.NoMethod & description1 isPlaying ()

Denne metoden bare returnerer true /false indikerer sang spilles eller ikke anbefale 2 seekTo (stilling)

Denne metoden tar et heltall, og flytte sangen til den aktuelle andre
3 getCurrentDuration ()

Denne metoden returnerer gjeldende posisjon for sangen i millisekunder
4 getDuration ()

Dette Metoden returnerer den totale varigheten av sangen i millisekunder
5 reset ()

Denne metoden tilbakemediespilleren
6 frigjøring ()

Denne metoden utgivelser en ressurs festet med Mediaplayer objekt
7 setVolume (flyte leftVolume, flyte rightVolume)

Denne metoden setter opp ned volumet til denne spilleren
8 setDataSource (FileDescriptor fd)

Denne metoden setter datakilden for audio /video-fil
9 selectTrack (int indeks)

Denne metoden tar et heltall, og velg spor fra listen som bestemt indeks
10 getTrackInfo ()

Denne metoden returnerer en matrise av sporinformasjon

Eksempel

Her er et eksempel som demonstrerer bruk av Mediaplayer klasse. Det skaper en grunnleggende mediespiller som lar deg forover, bakover, spille og pause en sang.

For å eksperimentere med dette eksempelet, må du kjøre dette på en faktisk enhet for å høre lyden. Anmeldelser StepsDescription1You vil bruke Android studio IDE å lage en Android-applikasjon under en pakke com.example.sairamkrishna.myapplication;. Mens du oppretter dette prosjektet, må du Target SDK og kompilere med på den nyeste versjonen av Android SDK til å bruke høyere nivåer av APIs.2Modify src /MainActivity.java fil for å legge Mediaplayer code.3Modify res /layout /activity_main å legge respektive XML components4Create en ny mappe under Mediaplayer med navn som rå og legger inn en mp3-fil i det med navn som song.mp35Run programmet og velge en som kjører Android-enhet, og installere programmet på den og verifisere resultatene

Følgende er innholdet av den modifiserte hovedaktivitet filen src /MainActivity.java
.
pakken com.example.sairamkrishna.myapplication, import android.app.Activity, import android.app.Activity, import android.graphics.Bitmap, import android.graphics.Color, import android.graphics.drawable.BitmapDrawable; import android.media.MediaPlayer, import android.os.Bundle, import android.os.Handler, import android.view.Menu, import android.view.MenuItem, import android.view.View, import android.widget.Button; import android .widget.ImageView, import android.widget.SeekBar, import android.widget.TextView, import android.widget.Toast, import java.util.concurrent.TimeUnit; public class MainActivity strekker Aktivitet {private Button b1, b2, b3, b4; private Imageview iv; private Mediaplayer Mediaplayer; privat dobbel Starttime = 0; privat dobbel finalTime = 0; privat Handler myHandler = new Handler ();; private int forwardTime = 5000; private int backwardTime = 5000; private seekbar seekbar; privat TextView TX1, TX2, TX3; public static int oneTimeOnly = 0; Override Beskyttet void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); b1 = (Button) findViewById (R.id.button); b2 = (Button) findViewById (R.id.button2); b3 = (Button) findViewById (R.id.button3); b4 = (Button) findViewById (R.id.button4); iv = (Imageview) findViewById (R.id.imageView); TX1 = (TextView) findViewById (R.id.textView2); TX2 = (TextView) findViewById (R.id.textView3); TX3 = (TextView) findViewById (R.id.textView4); tx3.setText ("Song.mp3"); Mediaplayer = MediaPlayer.create (dette, R.raw.song); seekbar = (seekbar) findViewById (R.id.seekBar); seekbar.setClickable (false); b2.setEnabled (false); b3.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {Toast.makeText (getApplicationContext (), "Spille lyd", Toast.LENGTH_SHORT) .vis (); mediaPlayer.start (); finalTime = mediaPlayer.getDuration (); Starttime = mediaPlayer.getCurrentPosition (); if (oneTimeOnly == 0) {seekbar.setMax ((int) finalTime); oneTimeOnly = 1;} tx2.setText (String.format ("% d min ,% d sec ", TimeUnit.MILLISECONDS.toMinutes ((lang) finalTime), TimeUnit.MILLISECONDS.toSeconds ((lang) finalTime) - TimeUnit.MINUTES.toSeconds (TimeUnit.MILLISECONDS.toMinutes ((lang) finalTime)))); tx1.setText (String.format ("% d min,% d sec", TimeUnit.MILLISECONDS.toMinutes ((lang) Starttime), TimeUnit.MILLISECONDS.toSeconds ((lang) Starttime) - TimeUnit.MINUTES.toSeconds (TIMEUNIT .MILLISECONDS.toMinutes ((long) starttid)))); seekbar.setProgress ((int) Starttime); myHandler.postDelayed (UpdateSongTime, 100); b2.setEnabled (true); b3.setEnabled (false); }}); b2.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {Toast.makeText (getApplicationContext (), "Pause sound", Toast.LENGTH_SHORT) .vis (); mediaPlayer.pause (); b2 .setEnabled (false); b3.setEnabled (true);}}); b1.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {int temp = (int) Starttime; if ((temp + forwardTime) < = finalTime) {Starttime = starttid + forwardTime; mediaplayer. seekTo ((int) Starttime); Toast.makeText (getApplicationContext (), "Du har hoppet frem 5 sekunder", Toast.LENGTH_SHORT) .vis ();} else {Toast.makeText (getApplicationContext (), "Kan ikke hoppe frem 5 sekunder ", Toast.LENGTH_SHORT) .vis ();}}}); b4.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {int temp = (int) Starttime; if ((temp-backwardTime)> 0) {Starttime = starttid - backwardTime; mediaPlayer.seekTo ( (int) Starttime); Toast.makeText (getApplicationContext (), "Du har hoppet bakover 5 sekunder", Toast.LENGTH_SHORT) .vis ();} else {Toast.makeText (getApplicationContext (), "Kan ikke hoppe bakover 5 sekunder" , Toast.LENGTH_SHORT) .vis ();}}}); } Private kjørbart UpdateSongTime = new kjørbart () {public void run () {Starttime = mediaPlayer.getCurrentPosition (); tx1.setText (String.format ("% d min,% d sec", TimeUnit.MILLISECONDS.toMinutes ((lang) Starttime), TimeUnit.MILLISECONDS.toSeconds ((lang) Starttime) - TimeUnit.MINUTES.toSeconds (TIMEUNIT. . millisekunder toMinutes ((lang) Starttime)))); seekbar.setProgress ((int) Starttime); myHandler.postDelayed (dette, 100); }}; Override Public boolean onCreateOptionsMenu (Meny menyen) {//Blås menyen; dette legger til elementer i handlingsfeltet hvis det er til stede. . getMenuInflater () blåse (R.menu.menu_main, menyen); return true; }Override Public boolean onOptionsItemSelected (MENUITEM element) {//Håndtak handlingen bar varen klikk her. Handlingsfeltet vil //automatisk håndtere klikker på Hjem /Opp-knappen, så lenge //som du angir en forelder aktivitet i AndroidManifest.xml. int id = item.getItemId (); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) {return true; } Returnere super.onOptionsItemSelected (element); }}

Følgende er endret innholdet i xml res /layout /activity_main.xml
< RelativeLayout xmlns:. android = "http://schemas.android.com/apk/res /Android "xmlns: verktøy =" http://schemas.android.com/tools "android: layout_width =" match_parent "android: layout_height =" match_parent "android: paddingLeft =" @ dimen /activity_horizontal_margin "android: paddingRight =" @ dimen /activity_horizontal_margin "android: paddingTop =" @ dimen /activity_vertical_margin "android: paddingBottom =" @ dimen /activity_vertical_margin "verktøy: kontekst =" MainActivity ">. < TextView android: text = "Music palyer" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /textview" android: Tekststørrelse = "35dp" android: layout_alignParentTop = "true" android: layout_centerHorizontal = "true" /> < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Tutorials point" android: id = "+ id /textView" android: layout_below = "+ id /textview" android: layout_centerHorizontal = "true" android: textcolor = "# ff7aff24" android: Tekststørrelse = "35dp" /> < Imageview android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /bildeVis" android: layout_below = "+ id /textView" android: layout_centerHorizontal = "true" android: src = "@ teikne /abc" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "> >" android: id = "+ id /knapp" android: layout_alignParentBottom = "true" android: layout_alignParentLeft = "true" android: layout_alignParentStart = "true" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "||" android: id = "+ id /knappen2" android: layout_alignParentBottom = "true" android: layout_alignLeft = "+ id /bildeVis" android: layout_alignStart = "+ id /bildeVis" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "<" android: id = "+ id /Button3" android: layout_alignTop = "+ id /knappen2" android: layout_toRightOf = "+ id /knappen2" android: layout_toEndOf = "+ id /knappen2" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "< <" android: id = "+ id /button4" android: layout_alignTop = "+ id /Button3" android: layout_toRightOf = "+ id /Button3" android: layout_toEndOf = "+ id /Button3" /> < seekbar android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /seekbar" android: layout_alignLeft = "+ id /textview" android: layout_alignStart = "+ id /textview" android: layout_alignRight = "+ id /textview" android: layout_alignEnd = "+ id /textview" android: layout_above = "+ id /knapp" /> < TextView android: "android: attr /textAppearanceSmall" layout_width = "wrap_content" android:: layout_height = "wrap_content" android textAppearance = android: text = "Small Text" android: id = "+ id /textView2" android: layout_above = "+ id /seekbar" android: layout_toLeftOf = "+ id /textView" android: layout_toStartOf = "+ id /textView" /> < TextView android: "android: attr /textAppearanceSmall" layout_width = "wrap_content" android:: layout_height = "wrap_content" android textAppearance = android: text = "Small Text" android: id = "+ id /textView3" android: layout_above = "+ id /seekbar" android: layout_alignRight = "+ id /button4" android: layout_alignEnd = "+ id /button4" /> < TextView android: "android: attr /textAppearanceMedium" layout_width = "wrap_content" android:: layout_height = "wrap_content" android textAppearance = android: text = "Medium Text" android: id = "+ id /textView4" android: layout_alignBaseline = "+ id /textView2" android: layout_alignBottom = "+ id /textView2" android: layout_centerHorizontal = "true" /> < /RelativeLayout >

Følgende er innholdet i res /verdier /string.xml
. < resources > < string name = "APP_NAME" > My Application < /string > < string name = "hello_world" > Hei, verden <! /string > < string name = "action_settings" > Innstillinger < /string > < /ressurser >

Følgende er innholdet av AndroidManifest.xml
fil
. <? xml version = "1.0 "encoding =" utf-8 "> < manifest xmlns:? android =" http://schemas.android.com/apk/res/android "pakken =" com.example.mediaplayer "android: version =" 1 "android: versjon =" 1.0 "> < bruker-SDK android: minSdkVersion = "13" android: targetSdkVersion = "22" /> < søknad android: allowBackup = "true" android: icon = "@ teikne /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < aktivitet android: name = "com.example.sairamkrishna.myapplication.MainActivity" android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LAUNCHER" /> < /intent-filter > < /aktivitets > < /søknad > < /manifest >

La oss prøve å kjøre programmet. Jeg antar at du har koblet den faktiske Android Mobile-enhet med datamaskinen. For å kjøre programmet fra Eclipse, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Før du starter programmet, vil Android studio vise følgende skjerm

Som standard du ville se på pauseknappen deaktivert. Nå trykker play-knappen og det ville bli deaktiver og pause-knappen blir aktivert. Det er vist i bildet nedenfor −

Frem til nå, musikken har spilt. Nå trykker på pauseknappen og se pause varselet. Dette er vist nedenfor −

Nå når du trykker på play-knappen igjen, sangen vil ikke spille fra begynnelsen, men fra der den ble avbrutt. Nå trykker du på spol frem eller tilbake-knappen for å hoppe sangen fremover eller bakover 5 sekunder. En gang kom når sangen ikke kan hoppe fremover. På dette punktet, vil meldingen vises som ville være noe sånt som dette −

Din musikk ville forbli spilles i bakgrunnen mens du gjør andre oppgaver i mobilen din. For å stoppe den, må du avslutte dette programmet fra bakgrunnsaktiviteter.

Over bildet viser når du plukker spole knappen. Anmeldelser