我对VideoView如何用于播放视频感到困惑:从本地文件,渐进式下载和流媒体。
This example通过下载文件并在本地播放,为我工作(至少1.5和2.0)。
但是在播放之前是否有必要下载视频:是否可以通过使用setVideoPath或setVideoURI来播放视频作为渐进式下载或流式传输,如API样本中的VideoViewDemo一样?
VideoViewDemo代码建议使用setVideoURI进行流式传输,但我不清楚我应该使用哪种URL。有人拥有可以使用VideoViewDemo代码流式传输到Android模拟器的视频的示例网址吗?
可以使用渐进式下载与VideoViewDemo一起使用吗?我得到一个'抱歉,这个视频无法播放'消息使用setVideoPath,网址与上面链接的博客示例一致。(这是模拟器中的问题吗?我尝试过1.5和2.0。)
我在网上找到了很多例子和文档,但到目前为止,还没有真正回答这个问题。
答案 0 :(得分:19)
是否可以播放视频 渐进式下载,或通过流式传输, 只需使用setVideoPath或 setVideoURI,与VideoViewDemo中一样 API样本?
它应该。它肯定适用于MediaPlayer
,而VideoView
只是MediaPlayer
和SurfaceView
周围的约200行包装。
如果视频编码正确,VideoViewDemo代码建议使用 setVideoURI用于流媒体,但我不是 清楚我应该是什么样的网址 使用
http://
和rtsp://
可以正常工作。
是否有人拥有一个示例网址 可以流式传输的视频 Android模拟器使用 VideoViewDemo代码?
This video适用于MediaPlayer
,但Nexus One除外。
编辑:实际上,该链接也适用于Nexus One。
答案 1 :(得分:2)
它适用于简单的情况,但仅当不需要为获取流的请求做一些自定义准备时。
本教程展示了音频的手动流式仿真示例,但播放视频时可能会进行一些重构:
http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/
(确保在设置FileDescriptor
时使用dataSource
,API会从这些时间略有变化。)
答案 2 :(得分:-4)
VideoView只能播放3gp视频,但我建议使用此代码来播放视频
public void onCreate(Bundle savedInstanceState){
setContentView(R.layout.main);
String videourl = "http://something.com/blah.mp4";
Uri uri = Uri.parse(videourl);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setDataAndType(uri, "video/mp4");
startActivity(intent);
}