Android 媒体播放器返回 IllegalStateException

标签 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();
 }

它在 Samsung galaxy 选项卡中工作正常,但在小型设备中出现以下错误(我检查了 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)

最佳答案

你这样做:

 PlayVoice.release(); 

你不是说

 mPlayVoice.release(); 

如果您有其他问题,这是最好的引用文档:

Android MediaPlayer

编辑

好的,如果你在这里:isPlaying() Invalid States它表明您正在尝试在播放器处于错误状态时调用 isPlaying() 。因此,您需要弄清楚为什么它已经处于错误状态。

In general, some playback control operation may fail due to various reasons, such as unsupported audio/video format, poorly interleaved audio/video, resolution too high, streaming timeout, and the like.

看看添加错误监听器:setOnErrorListener()

关于Android 媒体播放器返回 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7089201/

相关文章:

java - 如何在 Android Studio 中导入 Apollo 客户端 (GraphQL) 生成的类

eclipse - JavaFX播放声音引发错误

iphone - 从 UIWebView 打开媒体播放器时收到通知吗?

background - (UWP) 如何像 Groove 一样激活 "Taskbar Miniplayer"

iphone - 使用 SCListener 监听 iPhone 麦克风并同时播放音乐 : how?

android - Android 的好 ORM 工具?

java - 上下文作为变量的单例 - 内存泄漏?

android - 单击从 MYSQL 数据库获取的动态 ListView 的元素

android - 基于语音(噪音)强度级别的语音识别?

android - 如何获取已安装媒体播放器的列表