我不是百分百肯定,但我认为由于格式存储视频元数据的方式,您无法传输大部分视频.这就是为什么你必须转换视频文件而不是以任何格式显示它们.
有些协议可以封装这些元数据,并允许您传输任何视频(这是youtube移动设备所做的).你应该看一下RTSP:
http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
如果您在videoView中使用rtsp链接,它应该完美地流式传输视频.关键是您的问题是服务器而不是客户端相关.
作为练习,您可以从m.youtube.com获取rtsp链接,然后使用setVideoPath传递给videoView,它应该可以正常工作.
如果无法更改服务器实现,那么你可能是他们我猜你的解决方案是:
1)自己下载和解码视频,你必须处理所有的元数据,并确保视频确实有效.理论上,你可以编译ffmpeg for android来帮助你,但我无法使用网络选项将其编译为android.这是很多工作.
2)编写自己的RTSP或其他流协议实现.在线程中下载视频,然后在设备中创建本地服务器,将该视频文件流式传输到videoView实例.我实际上有一个应用程序. Android不支持客户端服务器使用的特定协议,我必须使其正常工作.我花了整整一个月才做到这一点.我不能发布任何示例代码,因为它是所有客户端的,但如果您感兴趣,我可以给您一些关于此的更多信息.
无论哪种方式,如果您无法更改视频的服务器/格式,那么您应该为大量工作做好准备.