0

我一直在使用这段代码,它在 Froyo 和 Gingerbread 上播放的声音很好(我假设 Honeycomb 和我的朋友都使用过它):

MediaPlayer mp = MediaPlayer.create(this, R.raw.click);

Button clicker = (Button) findViewById(R.id.clicker);

clicker.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v){

            mp.start();

        }
    });

我使用的音频是 WAV 格式的。我已经检查过它以确保它没有损坏并且很好。此代码和声音文件仍可在 Gingerbread 上正确运行。

在 Ice Cream Sandwich 和 JellyBean 设备(分别是 Galaxy nexus 和 nexus 7)上,此代码不起作用。不播放声音。logcat 中没有任何内容。我通过互联网搜索并询问我的朋友的想法,但我无法提出任何想法。

提前感谢您的宝贵时间!

4

1 回答 1

1

将调用包装在 IllegalStateException 中,通过调试器运行它,看看你得到了什么。还设置一个布尔值 isPlaying=mp.isPlaying(); 并检查其值。还可以在开始之前尝试 mp.reset() 并查看它是否有效。

另请参阅http://developer.android.com/reference/android/media/MediaPlayer.html#setOnErrorListener%28android.media.MediaPlayer.OnErrorListener%29

继续并实现 MediaPlayer.OnErrorListener 并向媒体播放器注册该方法。看看你得到什么错误。

于 2012-07-23T20:20:42.643 回答