2017-02-25 122 views
0

我有三个问题。如何在应用程序关闭时停止MediaPlayer的声音?

  1. 我该怎么做,当我切换/关闭应用程序/活动时,MediaPlayer的声音会停止?

  2. 我怎么能做到这一点,当我按下SOUND2是Sound1例子停止?

  3. 如何停止和播放声音上的一个按钮?我的意思是,当我按下按钮1一次然后声音开始,当我再次按下他的声音停止,等等。

我已经试过了,但它没有奏效。

这里是我的MainActivity:

import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 


     Button button1; 
     Button button2; 
     boolean w; 
     boolean b; 

     private MediaPlayer mp; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      button1 = (Button) findViewById(R.id.button1); 
      button2= (Button) findViewById(R.id.button2); 
      w = true; 
      b = true; 
    //Button1 
      button1.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        if(b == true){ 
        mp= MediaPlayer.create(MainActivity.this, R.raw.song1); 
        mp.start(); 
         b = false; 
       }else{ 
         mp.stop(); 
         b = true; 
        } 

       } 
      }); 
    //Button 2 
      button2.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        if(w == true){ 

         mp= MediaPlayer.create(MainActivity.this, R.raw.sound2); 
         mp.start(); 
         w = false; 
        }else{ 
         mp.stop(); 
         w = true; 

       }} 
      }); 
     } 
    //Stopping the sound when switching or closing the App 
     @Override 
     public void onPause() { 
      mp.stop(); 
      super.onPause(); 
     } 



} 

你能告诉我怎么解决我的问题呢?

我是新在Android Studio和对不起我的英语不好:)

+1

什么为w或b!?你在6个月的时间内甚至会自己知道答案吗?为什么不[isPlaying](https://developer.android.com/reference/android/media/MediaPlayer.html#isPlaying())? –

回答

0

答案似乎很简单:保持你的媒体播放器的参考。就目前而言,您每次都会创建一个新的MediaPlayer。但你也应该小心MediaPlayer的状态,这是相当挑剔的。

取本实施例流程:

  • 开始应用> [MP = NULL,B =假,W =假]
  • 点击按钮1> [MP = INSTANCE1,B =真中,w =假]> [INSTANCE1正在播放]
  • 点击按钮2> [MP = INSTANCE2,b =真,W =真]> [INSTANCE1正在播放时,INSTANCE2正在播放]
  • 点击按钮1> [MP = INSTANCE2,B =假,W =真]> [INSTANCE1正在播放时,INSTANCE2停止]
  • 暂停应用> [MP = INSTANCE2,B =假,W =真] > [INSTANCE1播放,INSTANCE2停止]

这也是很重要的release()当你暂停

相关问题