停止媒体播放器

时间:2011-08-22 16:18:04

标签: android android-mediaplayer

我是android新手,我有另一个(简单?)问题。我不知道如何停止媒体播放器。这是我的简单代码:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view);
        MediaPlayer mp;
        mp = MediaPlayer.create(this, R.raw.sauronsound);
        mp.setLooping(false);
        mp.start();
    @Override
    protected void onDestroy()
{

    // Stop play
        super.onDestroy();
        mp.stop();
    }
        }

按下后退按钮应用程序进入我的第一个活动,但声音已打开。当我离开应用程序时它也在。我该怎么办才能关闭声音?

总是原谅我的英语不好。

感谢你们,我解决了这个问题。工作代码:

public class SauronEye extends Activity {
    private MediaPlayer mp;
    @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view);
        mp = MediaPlayer.create(this, R.raw.sound);
        mp.setLooping(false);
        mp.start();


     // Get instance of Vibrator from current Context
        Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        v.vibrate(10000);
        }
@Override
    protected void onStop()
{
    // Stop play
    super.onStop();
    mp.stop();
}
    }

是否正确(可行)?感谢你们对我的帮助。

4 个答案:

答案 0 :(得分:2)

您在mp上使用的

onDestroy引用与您在onCreate上使用的引用不同。将MediaPlayer mp;行移至onCreate类之外。

答案 1 :(得分:0)

查看http://developer.android.com/reference/android/media/MediaPlayer.html 您可以根据您的要求调用停止或暂停。当您选择后退按钮时,将调用暂停,在该方法中您可以调用mp.stop(),仅在活动被完全销毁时才会调用onDestroy

答案 2 :(得分:0)

onDestroy仅在系统终止活动时调用。你应该将它放在onPause()中,而不是将它放在onDestroy中,只要你的活动被移动到后台但仍留在内存中就会被调用。 (按下后退按钮或离开应用程序会发生这种情况)

@Override
protected void onPause() {
    super.onPause();
    mp.stop();
}

答案 3 :(得分:0)

您可以非常轻松地调用override实现源代码,并将它们分别添加到您的代码中。您只需右键单击所需的插入点,然后单击Source-> Override / Implement Methods。它会打开一个对话框,你点击你需要的方法,尝试使用ondestroy,onpause,onstop。对于您的代码,在实现它们之后,只需将以下内容添加到每个代码中。

    protected void onDestroy{
      super.onDestroy();
      mp.release();
   }

    protected void onStop{
      super.onStop();
      mp.stop();
   }

    protected void onPause{
      super.onPause();
      mp.pause();
   }

此外,如果你想要更多的声音代码,你可以尝试这个链接 stealthcopters link 或者你可以尝试这个视频系列 cornboyzAndroid