Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MediaPlayer没有';“暂停”和“恢复”之后,无法工作_Android_Android Activity_Media Player_Android 2.2 Froyo - Fatal编程技术网

Android MediaPlayer没有';“暂停”和“恢复”之后,无法工作

Android MediaPlayer没有';“暂停”和“恢复”之后,无法工作,android,android-activity,media-player,android-2.2-froyo,Android,Android Activity,Media Player,Android 2.2 Froyo,我正在开发一个Android 2.2应用程序 我有以下活动: public class StartActivity extends Activity { private MediaPlayer mp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layo

我正在开发一个Android 2.2应用程序

我有以下活动:

public class StartActivity extends Activity {

    private MediaPlayer mp;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.startpage);
    }

    @Override
    protected void onResume() {
        super.onResume();
        ImageView ship = (ImageView)findViewById(R.id.greekShip);

        ship.startAnimation(AnimationUtils.loadAnimation(this, R.anim.translate_right));

        if (mp == null) {
            mp = MediaPlayer.create(getApplicationContext(), R.raw.oceanwave);
        }
        else {
            if (mp.isPlaying())
                mp.stop();
            mp.reset();
            try {
                mp.prepare();
            } catch (IllegalStateException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        mp.start();
    }

    @Override
    protected void onPause() {
        super.onPause();

        if (mp != null) {
            if (mp.isPlaying())
                mp.stop();
        }
    }
}
如果我按电话上的home(主页)按钮,声音就会停止。但如果我重启应用程序,mediaplayer就会启动,但我什么也听不见


你知道问题出在哪里吗?

mp.prepare()
只在else代码中。根据您的代码,我会在活动停止时释放mp以释放未使用时的资源,然后您可以在
onResume()中创建一个新的mp。prepare()
仅在else代码中。根据您的代码,我会在活动停止时释放mp以释放未使用的资源,然后您可以在
onResume()

中创建一个新的mp。您的意思是在onPause中以onStop方法释放mediaplayer,而不是在onPause中释放mediaplayer?