42

我对如何使用 VideoView 播放视频感到困惑:从本地文件,作为渐进式下载和流式传输。

通过下载文件并在本地播放,此示例适用于我(至少在 1.5 和 2.0 上)。

但是是否有必要在播放前下载视频:是否可以像 API 示例中的 VideoViewDemo 中那样简单地使用 setVideoPath 或 setVideoURI 以渐进式下载或流方式播放视频?

VideoViewDemo 代码建议使用 setVideoURI 进行流式传输,但我不清楚应该使用哪种 URL。有人有可以使用 VideoViewDemo 代码流式传输到 Android 模拟器的视频的示例 URL 吗?

VideoViewDemo可以使用渐进式下载吗?我使用 setVideoPath 收到一条“抱歉,此视频无法播放”消息,其 URL 可以与上面链接的博客示例一起正常工作。(这是模拟器中的问题吗?我尝试了 1.5 和 2.0。)

我在网上找到了很多示例和文档,但到目前为止,没有任何东西能真正回答这个问题。

4

3 回答 3

20

是否可以像 API 示例中的 VideoViewDemo 那样简单地使用 setVideoPath 或 setVideoURI 以渐进式下载或流式传输的方式播放视频?

它应该。它当然适用于MediaPlayer, 并且VideoView只是一个大约 200 行的包装器MediaPlayer和一个SurfaceView.

VideoViewDemo 代码建议使用 setVideoURI 进行流式传输,但我不清楚应该使用哪种 URL。

http://rtsp://如果视频编码正确,则可以工作。

有人有可以使用 VideoViewDemo 代码流式传输到 Android 模拟器的视频的示例 URL 吗?

此视频适用MediaPlayer于 Nexus One,但在 Nexus One 上除外。

编辑:实际上,该链接也适用于 Nexus One。

于 2010-01-13T18:38:10.830 回答
2

它适用于简单的情况,但仅在不需要为获取流的请求做一些自定义准备时。

本教程显示了一个音频手动流模拟的示例,但可以对其进行一些重构以播放视频:

http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/

(请务必FileDescriptor在设置时使用dataSource,API 从那时起略有变化)。

于 2010-09-24T14:51:56.720 回答
-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);
}

单击此处观看 Android 视频流教程

于 2013-06-01T17:31:28.720 回答