1

我是 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

4 回答 4

2

mp您使用的参考与您使用onDestroy的不同onCreate。将MediaPlayer mp;线移到onCreate课外。

于 2011-08-22T16:23:10.490 回答
0

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

于 2011-08-22T16:22:55.037 回答
0

onDestroy 仅在活动被系统杀死时调用。与其把它放在 onDestroy 中,不如把它放在 onPause() 中,当你的 Activity 移到后台但仍保留在内存中时,就会调用它。(按下后退按钮或离开应用程序时会发生这种情况)

@Override
protected void onPause() {
    super.onPause();
    mp.stop();
}
于 2011-08-22T16:33:13.227 回答
0

您可以非常轻松地调用覆盖实现源代码并将它们分别添加到您的代码中。您需要做的就是右键单击您想要它们的插入点,然后单击 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();
   }

此外,如果您想要更多的声音代码,您可以尝试这个链接 隐形直升机链接或者您可以尝试这个视频系列 cornboyzAndroid

于 2011-10-17T17:35:48.780 回答