欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android开发笔记--MediaPlayer error (1, -2147483648)

程序员文章站 2022-06-15 15:57:48
...

今天记录一个坑,使用MediaPlayer播放视频时出现了黑屏的情况,然后看控制台输出的系统日志中包含了一个“MediaPlayer error (1, -2147483648)

然后我就去查了一下源码,发现了这个

public interface OnErrorListener
    {
        /**
         * Called to indicate an error.
         *
         * @param mp      the MediaPlayer the error pertains to
         * @param what    the type of error that has occurred:
         * <ul>
         * <li>{@link #MEDIA_ERROR_UNKNOWN}
         * <li>{@link #MEDIA_ERROR_SERVER_DIED}
         * </ul>
         * @param extra an extra code, specific to the error. Typically
         * implementation dependent.
         * <ul>
         * <li>{@link #MEDIA_ERROR_IO}
         * <li>{@link #MEDIA_ERROR_MALFORMED}
         * <li>{@link #MEDIA_ERROR_UNSUPPORTED}
         * <li>{@link #MEDIA_ERROR_TIMED_OUT}
         * <li><code>MEDIA_ERROR_SYSTEM (-2147483648)</code> - low-level system error.
         * </ul>
         * @return True if the method handled the error, false if it didn't.
         * Returning false, or not having an OnErrorListener at all, will
         * cause the OnCompletionListener to be called.
         */
        boolean onError(MediaPlayer mp, int what, int extra);
    }

那么我所遇到的问题就是“MEDIA_ERROR_SYSTEM”这个错误,其原因是“系统版本过低错误”(瞎翻译的)。。。然后我又在网上查了一波,发现是因为视频文件通常是mp4、avi等格式的,但是即便是同一种文件格式,它们的编码格式也可能不一样。比如常见的编码格式有:H.264、H.263等。但许多Andorid设备都只能支持部分编码方式,这也就导致了有些视频没法在Andorid设备上播放,如果非要对这些视频进行播放,就涉及到了视频转码的复杂的操作了。。。目前我还没学会这种技能,也算挖个坑,以后慢慢填吧