【问题标题】:mediaplayer IllegalStateException no errors on emulator but sometimes crashed on real devicemediaplayer IllegalStateException 在模拟器上没有错误,但有时在真实设备上崩溃
【发布时间】:2012-02-11 08:12:21
【问题描述】:

任何人都可以解释为什么会发生这种情况。我看到媒体播放器在模拟器上运行良好,但有时在真实设备上崩溃了。我无法解决这个问题,因为模拟器没有显示错误。

创建mp的代码

            mp = new MediaPlayer();
        mp.setDataSource(myStream);
            mp.prepare(); //also consider mp.prepareAsync().

使用堆栈跟踪发现的错误

java.lang.RuntimeException: An error occured while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:200)
    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
    at java.lang.Thread.run(Thread.java:1096)
Caused by: java.lang.IllegalStateException
    at android.media.MediaPlayer._start(Native Method)
    at android.media.MediaPlayer.start(MediaPlayer.java:798)
    at myApp.activity.com.myApp.play(myApp.java:320)
    at myApp.activity.com.myApp$PlayOn.doInBackground(myApp.java:454)
    at myApp.activity.com.myApp$PlayOn.doInBackground(myApp.java:1)
    at android.os.AsyncTask$2.call(AsyncTask.java:185)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)

如果跟随 myApp.java 454 则崩溃的行

mp.start();

请解释或帮助我。我会很开心的比

问候,彼得。

【问题讨论】:

    标签: android media-player illegalstateexception


    【解决方案1】:

    您只能在MediaPlayer 为prepared 或paused 时调用start,如documenatation 中明确描述的那样。

    这里可能存在时间问题,导致该错误仅在某些情况下出现。即,如果您的代码的某些部分在代码的另一部分之前运行,您的 MediaPlayer 将处于错误状态并出现此崩溃。搜索MediaPlayer上的状态转换方法被调用的点,看看是否有可能以错误的顺序调用它们。

    看到你使用future,如果你不注意,很容易以错误的顺序调用方法。

    【讨论】:

    • 感谢您的评论.. 但我不是白痴。我知道使用媒体播放器需要什么
    • @Peter 你读过关于线程问题的部分吗?您不必因为找不到其中一个而成为白痴。相反,它们通常是最难找到的错误。
    猜你喜欢
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多