Android VideoView 只播放一次视频

3
当我在VideoView上播放一些MP4视频时,在特定设备上第一次播放时可以正常工作,但是下一次我再试图播放这个视频时,会出现以下问题:
W/MediaHTTPConnection: readAt 2862802 / 32768 => java.net.ProtocolException E/MediaPlayer: error (1, -2147483648) E/MediaPlayer: Error (1,-2147483648)
直到我清除应用程序的数据,然后我又可以播放那个视频一次。
尽管如此,仅清除一次数据并不总能帮助。有时候我得多次清除数据才能解决问题。更有甚者,有时候视频连续播放了几次而无需清除数据。
另一个问题是其他编码方式相同的视频没有任何问题...
VideoView是否以某种方式存储已经播放过的视频并在下一次播放时使用它?如果是,请问有没有办法管理它呢?
1个回答

1
在我个人的经验中,为了解决这个错误(错误基本上是未知错误),我们必须做以下两件事之一。一是缓存或下载视频(内置于VideoView中的视频似乎无法正常工作,感觉自从2.x以来甚至都没有更新过),二是重新编码视频(新的MP4编解码器对默认的VideoView实现来说似乎过于复杂-使用Adobe的Media Encoder,我们可以使用旧的规格重新编码)。这是一个好的指南:http://developer.android.com/guide/appendix/media-formats.html 你可能更好地使用MediaPlayer - 这是我不得不采取的措施(这并不是坏事,只是绝对不像VideoView那样快速或容易)。
还有一些其他问题可以提供见解: Android MediaPlayer/VideoView error (1, -2147483648)

Android MediaPlayer错误(1,-2147483648)


在VideoView的OnErrorListener中将视频下载到内部存储工作得很好。谢谢。 - Mikolaj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接