2016-07-13 1 views
0

У меня есть два действия в моем приложении, первый (MainActivity.java) имеет кнопку для вызова двух действий (player.java), а второй - аудио и кнопка остановки.Есть ли какой-нибудь звук? (В Android)

Таким образом, главная проблема я облицовкой ..

, когда я нажимаю начать вторую деятельность с одной он идет на другой вид деятельности, , как я запрограммировал он начинает аудио автоматически (I Want It To Start Автоматически) I нажмите stop audio stops ... затем вернитесь к второму действию вызова MainActivity (player.java) снова, он отлично работает ... снова он запускает звук правильно ... все работает нормально, когда я нажимаю звук, который продолжает воспроизводиться. . (Это то, что я хочу)

Но, если вы нажмете назад, не останавливая звук, и снова запустите второе действие (player.java), он снова начнет воспроизведение звука без остановки первого ... и того же трасса ck играет два раза ...

Я хочу играть только на одной дорожке сразу ... если какой-либо другой звук воспроизводится, остановите его, когда я снова начну эту деятельность.

Вот мой код ...

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

Пожалуйста, поделитесь своим кодом. – sJy

+0

Мой код слишком длинный ... Так что я обрезал другой материал .. И просто поделился, где у меня проблема ... Пожалуйста, проверьте это, и если вы можете мне помочь, пожалуйста, пожалуйста, Dude ... Я Ожидание ......... –

+0

Попробуйте переопределить 'onBackPressed()' в вашей 'PlayerActivity.java' и остановить медиаплеер там. – Abbas

ответ

0

Сделайте ваш объект MediaPlayer статический & чек на MediaPlayer isPlaying (). Попробуйте

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 ... !!!!!!!! Ты сделал мой день чувак ... Превосходно! Это работало ... Вы - Awesome Thankssssss ................ –