Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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应用程序中切换页面并在切换到下一页时听到声音?_Android_Android Intent - Fatal编程技术网

如何在android应用程序中切换页面并在切换到下一页时听到声音?

如何在android应用程序中切换页面并在切换到下一页时听到声音?,android,android-intent,Android,Android Intent,我正在尝试创建一个有很多页面的应用程序,每个页面都有按钮 当我点击按钮时,它会把我带到下一页 我想做的是,当我按下按钮时,它会播放我包含在“原始文件夹”中的声音 在这一刻,当我操纵代码,我按下按钮改变页面,它关闭应用程序。任何人都可以帮助。谢谢 这是我的代码: 如果这是代码的布局方式: button.setOnClickListener(new View.OnClickListener() { MediaPlayer mp; @Override public void

我正在尝试创建一个有很多页面的应用程序,每个页面都有按钮

当我点击按钮时,它会把我带到下一页

我想做的是,当我按下按钮时,它会播放我包含在“原始文件夹”中的声音

在这一刻,当我操纵代码,我按下按钮改变页面,它关闭应用程序。任何人都可以帮助。谢谢

这是我的代码:


如果这是代码的布局方式:

button.setOnClickListener(new View.OnClickListener() {
    MediaPlayer mp;
    @Override
    public void onClick(View view) {
    mp.seekTo(0);
    mp.start();

final MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.test);
        Intent intent = new Intent(context, MainAct2.class);
        startActivity(intent);
    }
});
那么原因是因为您试图在实际初始化MediaPlayer之前使用它。请尝试以下操作:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        try { 
             final MediaPlayer mp = MediaPlayer.create(context, R.raw.test);
             mp.start(); 
        } 
        catch(Exception e) { e.printStackTrace(); } // Eat it 
        Intent intent = new Intent(context, MainAct2.class);
        startActivity(intent);
    }
});

如果这不起作用,那么,其他地方肯定出了问题。

您更改了哪部分?我添加了这个“@Override public void onPause(){super.onPause();//如果进入后台,请释放MediaPlayer,如果(mp!=null)mp.Release();}}`和
mp.seekTo(0);mp.start();final MediaPlayer mp=MediaPlayer.create(getBaseContext(),R.raw.test);
您的应用程序似乎被未捕获的异常关闭,在这种情况下,设备日志中会发布有价值的信息。您也可以发布它吗()?好的,谢谢你的帮助。在尝试了不同的方法和检查后,我发现只要我添加此代码以启动媒体播放器“mp.start()”;“。该应用程序停止。如果我删除该应用程序,该应用程序工作正常。没有该应用程序,它实际上不会播放声音。我只是想让你知道,我在不同的地方尝试了该代码,只是想看看它是否工作,以及该代码如何导致关闭该应用程序。我认为它确实需要其他东西,因为我打算从一个方法或一个按钮中执行两件事。任何帮助都将不胜感激。再次感谢Hanks,但根本不起作用。在尝试不同的方法和检查后,我发现,只要我添加此代码以启动媒体播放器“mp.start();“。该应用程序停止。如果我删除该应用程序,该应用程序工作正常。没有该应用程序,它实际上不会播放声音。我只是想让你知道,我在不同的地方尝试了该代码,只是想看看它是否工作,以及该代码如何导致关闭该应用程序。我认为它确实需要其他东西,因为我打算从一个方法或一个按钮中执行两件事。如果你按照我写的那样做,它就不会崩溃。如果你的代码与你在文章中写的代码相匹配,那么很明显你每次点击按钮都会得到一个NullPointerException,因为当你使用它时,“mp”总是空的。你必须初始化它(即MediaPlayer.create(context,R.raw.test);)在你尝试使用它之前,你还应该发布日志。
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        try { 
             final MediaPlayer mp = MediaPlayer.create(context, R.raw.test);
             mp.start(); 
        } 
        catch(Exception e) { e.printStackTrace(); } // Eat it 
        Intent intent = new Intent(context, MainAct2.class);
        startActivity(intent);
    }
});