vns*_*tty 9 android media-player
我有以下代码来播放小型音频文件
private void playVoice() {
if (mPlayVoice != null) {
if (mPlayVoice.isPlaying()) {
mPlayVoice.release();
mPlayVoice = null;
}
}
mPlayVoice =
MediaPlayer.create(BirdsActivity.this, mSoundIds[getCurrentIndex()]);
mPlayVoice.start();
}
Run Code Online (Sandbox Code Playgroud)
它在三星galaxy选项卡中工作正常,但在小型设备中出现以下错误(我在索尼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)
Run Code Online (Sandbox Code Playgroud)
Blu*_*ell 12
你这样做:
PlayVoice.release();
Run Code Online (Sandbox Code Playgroud)
你不是故意的吗?
mPlayVoice.release();
Run Code Online (Sandbox Code Playgroud)
如果您有其他问题,这是最好的咨询文件:
编辑
好的,如果你在这里:isPlaying()它显示的无效状态你正试图在播放器处于错误状态时调用isPlaying().所以你需要弄清楚为什么它已经处于错误状态.
通常,一些回放控制操作可能由于各种原因而失败,例如不支持的音频/视频格式,交错的音频/视频,分辨率太高,流超时等.
看看添加错误监听器:setOnErrorListener()
pic*_*aso 10
使用以下代码,因为我面临同样的异常.
try {
if(mPlayVoice!=null && mPlayVoice.isPlaying()) {
Log.d("TAG------->", "player is running");
mPlayVoice.stop();
Log.d("Tag------->", "player is stopped");
mPlayVoice.release();
Log.d("TAG------->", "player is released");
}
} catch(Exception e){
}
Run Code Online (Sandbox Code Playgroud)
写下你想做的任何事情.实际上条件检查像isPlaying()或检查null会生成IllegalStateException .....
| 归档时间: |
|
| 查看次数: |
28681 次 |
| 最近记录: |