我在播放实时流时从 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)
最佳答案
想通了。我在没有持续时间的流(实时流)上调用了零值的seekTo()。为什么之前5.1升级后可以用,我不知道。
关于android - Android 5.1 中 MediaPlayer 播放 HLS 直播流时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29195774/