我有以下代码来播放小音频文件:
private void playVoice() {
if (mPlayVoice != null) {
if (mPlayVoice.isPlaying()) {
mPlayVoice.release();
mPlayVoice = null;
}
}
mPlayVoice =
MediaPlayer.create(BirdsActivity.this, mSoundIds[getCurrentIndex()]);
mPlayVoice.start();
}
在三星 Galaxy Tab 中运行良好,但在小型设备上(我在 Sony Xperia Mini Pro 上检查了我的项目)会出现以下错误:
08-17 12:45:45.232: ERROR/AndroidRuntime(6639): java.lang.IllegalStateException
08-17 12:45:45.232: ERROR/AndroidRuntime(6639): at android.media.MediaPlayer.isPlaying(Native Method)
08-17 12:45:45.232: ERROR/AndroidRuntime(6639): at com.android.mds.kidsapps.alphakids.BirdsActivity.playVoice(BirdsActivity.java:146)
videoView.sestOnPreparedListener(.....)
并在onPrepared
中获取mediaPlayer
,现在我有全局的mediaplayer对象,所以我正在做像globalM = mp
这样的事情(这是我的要求),然后在globalMp
中设置音量并得到IllegalStateException
(但不是每次都出现),问题出在哪里?我是否需要设置globalMp.prepare...
,即使我从videoView
的准备监听器中得到它? - Vivek Thummar