2017-09-05 5 views
0

Ich möchte, dass jede Sounddatei in meiner Datenbank zweimal abgespielt wird, bevor die nächste Sounddatei abgespielt wird.Media Player jede Sounddatei zweimal abspielen

Hier ist meine Klasse.

public void startSlides() { 

    timer = new Timer(); 
    timer.scheduleAtFixedRate(new TimerTask() { 

     public void run() { 
      runOnUiThread(new Runnable() { 
       public void run() { 

        Intent intent = getIntent(); 

        int setId = intent.getIntExtra("SelectedSetId",0); 

        databaseAccess.open(); 


        setId = setId + 1; 


        final List<byte[]> audio = databaseAccess.getAudioA(setId); 

        if (i > audio.size()){ 
         i = 0; 
        }else{ 
         playAudio(audio.get(i)); 
         i++;} 


        List<String> vocab = databaseAccess.getVocabNameA(setId); 
        textView2.setText(vocab.get(k)); 
        k++; 

        textView.setText(+j + "/" + vocab.size()); 
        j++; 

        databaseAccess.close(); 

        if (j == vocab.size() + 1) { 
         timer.cancel(); 
        } 
       } 
      }); 
     } 

    }, 0, DURATION); 

} 

Ich habe versucht, zweimal das Spiel Audio-Methode zu nennen, aber es funktioniert nicht (zugleich Es spielt nur die gleiche Datei).

Wer hat irgendeinen Vorschlag wie soll ich es tun? Danke

+0

*, wie mein Code zu beheben * **, was kaputt ist ** Ist vielleicht 'playAudio' beginnen einen neuen Thread?? Sie müssen warten, bis es fertig ist - wild raten! –

+0

@ScaryWombat, ich meine jeden Vorschlag, wie sollte ich es tun, um die Audiodatei zweimal zu spielen. – chernting

+0

Es tut mir leid, ich verstehe nicht, was Sie meinen. – chernting

Antwort

0

auf diese Weise tun könnte Ihnen helfen:

private int mPlaybackCount = 0; 

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
       @Override 
       public void onCompletion(MediaPlayer mp) { 
        if(mPlaybackCount < 1){ 
         mPlaybackCount++; 
         // Play Song again 
        } else { 
         mPlaybackCount = 0; 
         // Play Next Song 
        } 


       } 
      }); 
+0

Hi, ich habe das in meine playAudio Methode eingefügt, aber es funktioniert immer noch nicht. – chernting