我在播放直播时遇到来自MediaPlayer的奇怪错误。在将我的Nexus 10从5.0.x升级到5.1之前,代码运行良好。
我在onError处理程序中收到错误:错误(-2147483648,0)并且必须停止视频。如果我在错误处理程序中放置一个断点,那么视频在设备上播放得非常完美,所以我不知道为什么它会抛出错误,也不知道它意味着什么。
我已尝试调试MediaPlayer源,但由于某种原因,设备上的二进制文件与我对5.1的源不一致。无论哪种方式,似乎错误来自Native代码。
我可以使用相同的代码播放其他媒体资源,似乎只有没有持续时间信息的媒体才会导致错误。
以下是我从日志中获取的唯一有用信息:
03-21 23:02:22.365: W/MediaPlayer(26062): info/warning (801, 0)
03-21 23:02:22.401: D/MediaPlayer(26062): getMetadata
03-21 23:02:22.416: W/MediaPlayer(26062): Stream has no duration and is therefore not seekable.
03-21 23:02:22.416: E/MediaPlayer(26062): error (-2147483648, 0)
03-21 23:02:22.427: E/MediaPlayer(26062): Error (-2147483648,0)
03-21 23:02:22.443: D/VideoView(26062): Error: -2147483648,0
03-21 23:02:22.446: W/Tag(26062): Playback error in -2147483648 info: 0
03-21 23:02:22.492: W/MediaPlayer(26062): info/warning (3, 0)
答案 0 :(得分:2)
想出来。我在没有持续时间的流上调用seekTo(),其值为零(实时流)。之前为什么它有效,5.1升级,我不知道。