当我在VideoView上播放一些MP4时,它首次在特定设备上播放,但是每次我尝试再次播放此视频时我都会
W / MediaHTTPConnection:readAt 2862802/32768 => java.net.ProtocolException E / MediaPlayer:错误(1,-2147483648) E / MediaPlayer:错误(1,-2147483648)
直到我清除应用程序的数据才会发生这种情况。然后我再次播放该视频。
虽然清理数据一次并不总是有帮助。有时我必须做几次。还有更多的情况是视频连续播放几次而没有清除数据。
另一件事是另一个编码相同的视频不会导致任何问题......
VideoView是否以某种方式存储已播放的视频并在下次播放时使用它?如果是这样,是否有可能管理它?
答案 0 :(得分:1)
根据我的个人经验,我们必须做两件事之一来解决这个错误(错误是未知错误,基本上)。
我们要么必须自己A,缓冲或下载视频(VideoView内置的视频似乎不能正常工作,感觉好像它已经2.x甚至已经更新)或者B,重新编码视频(较新的MP4编解码器似乎对于默认的VideoView实现来说过于复杂 - 使用Adobe的媒体编码器,我们可以使用较旧的规格重新编码)。这是一个很好的指南:http://developer.android.com/guide/appendix/media-formats.html
你也可能更好地使用MediaPlayer - 这是我不得不求助的事情(不是一件坏事,绝对不像VideoView那么快或简单)
还有一些其他问题可以帮助您了解这一点: