Android MediaPlayer不会在较新的API上播放声音

时间:2012-07-23 20:08:20

标签: java android audio android-mediaplayer

我一直在使用这个代码,它在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中没有任何东西。我通过互联网搜索并向朋友们征求意见,我无法想出任何建议。

提前感谢您的时间!

1 个答案:

答案 0 :(得分:1)

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

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

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