android-can';我不能让MediaPlayer工作

android-can';我不能让MediaPlayer工作,android,android-mediaplayer,Android,Android Mediaplayer,这是我在stackoverflow上的第一个问题,所以请放松^^ 从几天开始,我开始从事android开发。作为第一个小项目,我想开发一个音板应用程序。可悲的是,我无法让该死的MediaPlayer工作。要么它没有错误,我什么也听不见(音量最大),要么我在准备MediaPlayer时出错 单击按钮时,我调用playSound(View)事件。在函数中,我想播放应用程序资源中的mp3文件。下面是我当前的代码,您可以在其中找到一个链接,您可以看到我是如何将mp3文件添加到应用程序资源的。我在谷歌上搜

这是我在stackoverflow上的第一个问题,所以请放松^^

从几天开始,我开始从事android开发。作为第一个小项目,我想开发一个音板应用程序。可悲的是,我无法让该死的MediaPlayer工作。要么它没有错误,我什么也听不见(音量最大),要么我在准备MediaPlayer时出错

单击按钮时,我调用playSound(View)事件。在函数中,我想播放应用程序资源中的mp3文件。下面是我当前的代码,您可以在其中找到一个链接,您可以看到我是如何将mp3文件添加到应用程序资源的。我在谷歌上搜索了很多次,尽我所知尝试了很多次,但都没有成功。。你知道代码有什么问题吗

public void playSound(View v)
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setCancelable(true);

        MediaPlayer mediaPlayer = new MediaPlayer();

        try {
            mediaPlayer.setDataSource(MainActivity.this, Uri.parse("android.resource://mypackagename/res/raw/einemetallischebitterkeit"));
            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

            mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    mp.stop();
                    mp.release();
                }
            });

            mediaPlayer.prepare();
            mediaPlayer.start();

        } catch (IOException e) {
            builder.setMessage(e.toString());
            AlertDialog dialog = builder.create();
            dialog.show();
        }

    }

您应该这样使用

InputStream mymp3 = getResources().openRawResource(R.raw.einemetallischebitterkeit); 

你应该这样用

InputStream mymp3 = getResources().openRawResource(R.raw.einemetallischebitterkeit); 

你能告诉我把这个放在哪里吗?或者如何使用它?我还尝试按照代码行设置数据源-在准备媒体播放器//mediaPlayer.setDataSource(getResources().openRawResourceFd(R.raw.EineMetallischeBiterkit.getFileDescriptor())时仍然会出现错误;你能告诉我把这个放在哪里吗?或者如何使用它?我还尝试按照代码行设置数据源-在准备媒体播放器//mediaPlayer.setDataSource(getResources().openRawResourceFd(R.raw.EineMetallischeBiterkit.getFileDescriptor())时仍然会出现错误;