首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaPlayer错误(1,-1004)

MediaPlayer错误(1,-1004)
EN

Stack Overflow用户
提问于 2016-12-13 13:11:36
回答 1查看 3.9K关注 0票数 4

我在这里搜索了太多的堆栈溢出,但我找不到任何解决我的问题的办法。

我得到一个媒体播放器错误名为'MEDIA_ERROR_IO‘代码-1004。

我是来自服务器的音频流,一切都很好。准备好歌曲,然后在onPrepared()方法中开始。

现在,当有一个来电,电话开始响时,问题就来了,我通过从我的mediaPlayer.pause()类打电话来暂停这首歌。

当电话通话结束时,通过调用mediaPlayer.start()再次启动音频

音频启动,但2-3秒后,它停止了一个错误,即MediaPlayer错误(1,-1004)。

现在我该怎么办?

任何帮助都是值得赞赏的。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-29 07:26:48

音频启动,但2-3秒后,它停止了一个错误,即MediaPlayer错误(1,-1004)。

首先,让我们理解错误(1,-1004)是什么意思。-1004是IO错误的错误代码。下面参考从MediaPlayer.java源代码。

代码语言:javascript
复制
/** File or network related operation errors. */
public static final int MEDIA_ERROR_IO = -1004;

如果由于某种原因,由于网络问题,媒体播放器无法连接到服务器,则会出现此类型的错误。在该实例中,可能是internet连接不良,也可能是由于某些与网络有关的原因,媒体播放器无法连接到服务器。媒体播放器还可以抛出其他一些类似的错误代码,比如超时或服务器死亡:

代码语言:javascript
复制
/** Some operation takes too long to complete, usually more than 3-5 seconds. */
    public static final int MEDIA_ERROR_TIMED_OUT = -110;
/** Media server died.*/
    public static final int MEDIA_ERROR_SERVER_DIED = 100;

现在我该怎么办?

若要处理运行时由媒体播放器生成的错误,应实现错误侦听器。您可以按您喜欢的方式处理错误,例如重新启动播放机。

代码语言:javascript
复制
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) {
                switch(extra){
                    case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
                        // Do Something
                        // eg. reset the media player and restart
                        break;
                    case MediaPlayer.MEDIA_ERROR_IO:
                        // Do Something
                        // eg. Show dialog to user indicating bad connectivity
                        // or attempt to restart the player
                        break;
                    case MediaPlayer.MEDIA_ERROR_TIMED_OUT:
                        //Do Something
                        //eg. Show dialog that there was error in connecting to the server
                        // or attempt some retries
                        break;
                }
                //You must always return true if you want the error listener to work
                return true;
            }
        });
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41122021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档