【问题标题】:Android MediaPlayer error codes?Android MediaPlayer 错误代码?
【发布时间】:2010-10-04 17:21:39
【问题描述】:

我正在努力让直播广播流在 android 上运行。我正在使用 MediaPlayer 类,只是设置 URL 并播放它。它在大多数情况下效果很好,但在 5-30 分钟后它不可避免地会死掉。在 2.1 手机(更具体地说是英雄)上,我得到了这个日志输出

W/MediaPlayer( 7919): info/warning (1, 26)
I/MediaPlayer( 7919): Info (1,26)
I/MediaStreamService( 7919): mPlayer info code:1  extra:26
E/MediaPlayer( 7919): error (1, -11)
E/MediaPlayer( 7919): Error (1,-11)

MediaStreamService 是我的 Service,其中包含 MediaPlayer,输出来自 OnInfoListener

在 2.2 手机上,我从来没有收到 OnInfoListener 回调,流就死了。但我确实在 logcat 中看到了这一点

E/HTTPStream( 1020): recv failed, errno = 11 (Try again)
E/HTTPDataSource( 1020): retrying connection failed

在我的 1.6 手机上似乎可以完美运行,尽管不断有 logcat 垃圾邮件

E/PlayerDriver( 82): Invalid percentage value <big growing number>

我的问题是,错误代码 (1, 26) 是什么意思?是什么导致我的 mediaPlayer 崩溃? 2.1的问题和2.2的问题有关系吗? 谢谢, 内森

编辑:我正在查看OnInfoListener 的源代码并找到public static final int MEDIA_INFO_UNKNOWN = 1; 我不确定这到底是什么意思,也找不到这些额外内容的保存位置.. 对未知媒体信息的含义有任何见解吗?或者这 26 代表什么将不胜感激。

【问题讨论】:

    标签: android media-player


    【解决方案1】:

    我的问题是,错误代码 (1, 26) 是什么意思?

    • 26 表示 PVMFInfoErrorHandlingStart,只是一个错误指示

    错误为-11,表示PVMFErrTimeout。你可以在这里查看定义文件link text

    【讨论】:

    • 链接已损坏。你可以找到它here
    【解决方案2】:

    也许是 RDS 数据? 您是否手动设置缓冲区大小?

    【讨论】:

    【解决方案3】:

    要开始播放,必须调用 start()。 start() 返回成功后,MediaPlayer 对象处于 Started 状态。可以调用isPlaying()来测试MediaPlayer对象是否处于Started状态。

    在启动状态时,如果已通过 setOnBufferingUpdateListener(OnBufferingUpdateListener) 预先注册了 OnBufferingUpdateListener,则内部播放器引擎会调用用户提供的 OnBufferingUpdateListener.onBufferingUpdate() 回调方法。此回调允许应用程序在流式传输音频/视频时跟踪缓冲状态。

    调用 start() 对已经处于 Started 状态的 MediaPlayer 对象没有影响。

    也许它是响应的一部分。

    【讨论】:

    • OnBufferingUpdate 不会在具有此流的 2.2 设备上调用,因为文件大小未知。 (无限大小的广播电台流)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 2012-07-17
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多