2016-05-26 6 views
1

Ich habe ein Array mit 0 und 1 und ich versuche, eine mp3-Datei jedes Mal für jede "1" in meinem Array zu spielen, und wenn ich eine "0" habe möchte ich die App eine Sekunde warten. Ich habe diesen Code ausprobiert, es funktioniert aber die App ist blockiert, wenn ich in die Schleife gehe. Es gibt andere Möglichkeiten, dies zu tun?Abspielen von MP3-Datei in Android von einem Array

while(j < c.size()){ 
    if(c.get(j)==1) { 
     mediaPlayer.start(); 
     SystemClock.sleep(1000); 
    } 
    else SystemClock.sleep(1000); 

    j++; 
} 
+0

Suchen Sie nach AsyncTask Klasse und wie es zu benutzen – vilpe89

Antwort

0

Versuchen Sie mit einer AsyncTask, können Sie die Musik im Hintergrund abspielen. in der while, setzen Sie einen Boolean verbunden mit der Schaltfläche zum Ändern der Flagge und rufen Sie die Methode.

pd: sry mein schlechtes Englisch xD

public void mAsyncTask() { 
     new AsyncTask<Void, Void, Void>() { 
      @Override 
      protected Void doInBackground(Void... params) { 
       while (--Here put a boolean--) { 
        mediaPlayer.start(); 
        try { 
         Thread.sleep(--put here a pause in millisec--); 
        } catch (InterruptedException e) { 
         e.printStackTrace(); 
        } 
       } 
       return null; 
      } 
     }.execute(); 
    }