2016-07-14 7 views
-1

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

Основной проблемой я столкнулся это:

Когда я нажимаю начать вторую деятельность с одной стороны, это идет на другой вид деятельности. Как я запрограммировал, он автоматически запускает звук (я хочу, чтобы он запускался автоматически). Я нажимаю кнопку остановки звука. Затем вернитесь к MainActivity вызовите вторую активность (Player.java), и она отлично работает. Снова он запускает звук правильно. Все работает нормально, когда я отжимаю звук, который продолжает воспроизводиться. (Это то, что я хочу).

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

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

Вот мой код:

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

Вы должны позвонить audio.stop в игрока деятельности OnPause() метод когда пользователь нажимает кнопку «Назад». Воспроизведение аудио - это системное обслуживание, которое не зависит от жизненного цикла вашей деятельности.

Таким образом, ваша деятельность закрывает звук, а когда снова воспроизводится, когда он запускается снова.

Смежные вопросы