2016-07-13 16 views
0

Ich habe zwei Aktivitäten in meiner App, erste (MainActivity.java) hat eine Taste, um Aktivität zwei (player.java) und die zweite hat die Audio-und eine Stop-Taste.Wird Audio abgespielt? (In Android)

So ist das Hauptproblem ist, dass ich mit Blick auf ..

, wenn ich von einer Sekunde Aktivität klicken starten Sie es auf eine andere Tätigkeit geht, , wie ich es Audio startet automatisch programmiert (I Want It automatisch starten) I press stop audio stops ... dann geh zurück zu MainActivity call second activity (player.java) es klappt wieder gut ... wieder startet es audio richtig ... alles funktioniert prima, wenn ich zurück drücke, der audio spielt weiter .. . (Das ist, was ich will)

Aber wenn Sie zurückdrücken, ohne das Audio zu stoppen, und starten Sie die zweite Aktivität (player.java) erneut, es startet das Audio wieder ohne zuerst zu stoppen ... und gleich tra ck spielt zwei mal ...

Ich möchte nur eine Spur auf einmal spielen ... wenn irgendein anderes Audio spielt, hör auf, wenn ich diese Aktivität wieder beginne.

Hier ist mein Code ...

MainActivity.java

package com.test.myapp; 

import android.app.*; 
import android.os.*; 
import android.content.*; 
import android.widget.*; 
import android.view.*; 

public class MainActivity extends Activity { 
    Button btn; 

    @Override 
    public void onCreate(Bundle savedIntanceState) { 
     super.onCreate(savedIntanceState); 
     setContentView(R.layout.activity_main); 

     btn = (Button) findViewById(R.id.button); 

     public void clicked(View v){ 
      if (v.getId() == R.id.button){ 
       Intent i = new Intent (MainActivity.this, player.class); 
       startActivity(i); 
      } 
     } 
    } 
} 

player.java

package com.test.myapp; 

import android.app.*; 
import android.os.*; 
import android.content.*; 
import android.widget.*; 
import android.view.*; 
import android.media.*; 

public class player extends Activity { 
    Button stop; 
    MediaPlayer audio; 

    @Override 
    public void onCreate(Bundle savedIntanceState) { 
     super.onCreate(savedIntanceState); 
     setContentView(R.layout.player); 

     stop= (Button) findViewById(R.id.stop); 
     audio = MediaPlayer.create(getBaseContext(), R.raw.myAudio); 
     audio.start(); 

     public void stop(View v){ 
      if (v.getId() == R.id.stop){ 
       audio.stop(); 
       audio = MediaPlayer.create(getBaseContext(), R.raw.myAudio); 
      } 
     } 
    } 
} 
+0

Bitte teilen Sie Ihren Code. – sJy

+0

Mein Code ist zu lang ... So habe ich das andere Zeug getrimmt ... und nur geteilt, wo ich das Problem bekomme ... Bitte überprüfe es und wenn du mir helfen kannst Also bitte Alter ... ich bin Waiting ......... –

+0

Überschreibe 'onBackPressed()' in deiner 'PlayerActivity.java' und stoppe den Media Player dort. – Abbas

Antwort

0

Ihre Mediaplayer-Objekt statische & Check für Mediaplayer isPlaying Stellen (). Versuchen Sie

public class player extends Activity { 
    Button stop; 
    static MediaPlayer audio; 

    @Override 
    public void onCreate(Bundle savedIntanceState) { 
     super.onCreate(savedIntanceState); 
     setContentView(R.layout.activity_player); 

     stop = (Button) findViewById(R.id.stop); 
     stop.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       audio.stop(); 
      } 
     }); 

     if(audio == null) { 
      audio = MediaPlayer.create(getBaseContext(), R.raw.myaudio); 
      audio.start(); 
     } else { 
      if(audio.isPlaying()) { 
       audio.stop(); 
       audio = MediaPlayer.create(getBaseContext(), R.raw.myaudio); 
       audio.start(); 
      } else { 
       audio = MediaPlayer.create(getBaseContext(), R.raw.myaudio); 
       audio.start(); 
      } 
     } 
    } 

} 
+0

Voohooooo ... !!!!!!!! Du hast meinen Tag gemacht Dude ... großartig! Es hat funktioniert ... Du bist super Thankssssss ................ –

Verwandte Themen