Android-为我的字母表应用程序添加声音

Android-为我的字母表应用程序添加声音,android,Android,我一直在尝试为我的alphabet android应用程序添加声音,但似乎没有成功。下面是我的代码 public class Sound extends Activity implements OnCompletionListener { /** Called when the activity is first created. */ private ImageView b; private ImageView t; private ImageView

我一直在尝试为我的alphabet android应用程序添加声音,但似乎没有成功。下面是我的代码

public class Sound extends Activity implements OnCompletionListener {
       /** Called when the activity is first created. */

    private ImageView b;
    private ImageView t;
    private ImageView j;
    private MediaPlayer mp;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.alphabet);

        b=(ImageView)findViewById(R.drawable.b);
        t=(ImageView)findViewById(R.drawable.t);
        j=(ImageView)findViewById(R.drawable.j);

        b.setOnClickListener(new View.OnClickListener() {

            public void onClick(View view) {

                b();
            }

        });


        setup();

        t.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {

                t();
            }               
        });
        setup2();
        j.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                j();
            }
        });
        setup3();
    }
        public void onCompletion(MediaPlayer mp) {
        stop();
    }

    private void stop() {
        mp.stop();

    }

    private void b() {
        mp.stop();
        loadClip();
        mp.start();

        b.setEnabled(true);
    }
    private void t() {
        mp.stop();
        loadClip2();
        mp.start();

        t.setEnabled(true);
    }
    private void j() {
        mp.stop();
        loadClip3();
        mp.start();

        j.setEnabled(true);
    }

    private void loadClip() {

        try {
            mp=MediaPlayer.create(this, R.raw.b);
            mp.setOnCompletionListener(this);

        }
        catch (Throwable t) {
            goBlooey(t);
        }
    }
    private void loadClip2() {

        try {
            mp=MediaPlayer.create(this, R.raw.t);
            mp.setOnCompletionListener(this);

        }
        catch (Throwable t) {
            goBlooey(t);
        }
    }

    private void loadClip3() {

        try {
            mp=MediaPlayer.create(this, R.raw.j);
            mp.setOnCompletionListener(this);

        }
        catch (Throwable t) {
            goBlooey(t);
        }
    }

    private void setup() {
        loadClip();
        b.setEnabled(true);
    }
    private void setup2() {
        loadClip2();
        t.setEnabled(true);
    }

    private void setup3() {
        loadClip3();
        j.setEnabled(true);
    }

    private void goBlooey(Throwable t) {
        AlertDialog.Builder builder=new AlertDialog.Builder(this);

        builder
            .setTitle("Exception!")
            .setMessage(t.toString())
            .setPositiveButton("OK", null)
            .show();
    }
}
请您看一下我的代码,让我知道在哪里或缺少什么。 所有图像都在可绘制中,所有剪辑都在原始中。
问候。

快速浏览一下您的代码,我想说您的mp不存在是为了在第一次运行时加载另一个剪辑之前停止它

顶推 私有媒体播放器mp=null


然后在每一行上都写着mp.stop();将其更改为if(mp!=null)mp.stop()

请更具体一点。我已经创建了一个字母表应用程序,我想当图像被点击时给出字母表的声音。我已经创建了上面的代码,但是当我单击图像时,没有声音。我知道很多,但是尝试通过调试或推理来定位实际问题。不要发布整个课程。仍然不起作用。你建议的我都做了。仍然没有声音。声音文件格式是mp3还是wav?测试设备上的声音是否已打开?您是否从“goBlooey”功能收到任何消息?logcat中是否出现任何东西?该应用程序分为两个组件,一个用于播放带有声音的动画(该部分工作正常),另一个是手动的,以便用户单击图像时听到声音(发音)。日志上什么也没有。