我一直在使用这个代码,它在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中没有任何东西。我通过互联网搜索并向朋友们征求意见,我无法想出任何建议。
提前感谢您的时间!
答案 0 :(得分:1)
将调用包装在IllegalStateException中,通过调试器运行它,看看你得到了什么。还设置了一个布尔值isPlaying = mp.isPlaying();并检查其价值。也可以在开始之前尝试使用mp.reset()并查看它是否有效。
继续并使用MediaPlayer.OnErrorListener并使用媒体播放器注册该方法。看看你得到了什么错误。