视频流和安卓系统

27

今天我为我的一个应用程序(Android 2.1)想从URL流式传输视频。

就我所了解的安卓SDK来说,它非常好,我喜欢它的几乎每一部分。但是现在涉及到视频流时,我有点迷茫。

关于安卓SDK的任何信息,你都可以找到成千上万的博客告诉你如何做。但是当涉及到视频流时,情况不同。信息并不是那么丰富。

每个人都用自己的方法去骗过这里那里。

是否有任何知名的过程允许流式传输视频?

谷歌有没有考虑让开发者更容易地进行视频流式传输?


你好,你尝试在安卓上流媒体播放.ism文件了吗? - Dhinakaran Thennarasu
1个回答

36

如果您想让操作系统使用默认播放器播放视频,您可以使用以下意图:

String videoUrl = "insert url to video here";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(videoUrl));
startActivity(i);

然而,如果你想自己创建一个视图并将视频流传输到它,一种方法是在你的布局中创建一个VideoView并使用MediaPlayer将视频流传输到其中。以下是XML中的VideoView:

<VideoView android:id="@+id/your_video_view"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
/>

然后在您的活动的onCreate方法中找到视图并启动媒体播放器。

    VideoView videoView = (VideoView)findViewById(R.id.your_video_view);
    MediaController mc = new MediaController(this);
    videoView.setMediaController(mc);

    String str = "the url to your video";
    Uri uri = Uri.parse(str);

    videoView.setVideoURI(uri);

    videoView.requestFocus();
    videoView.start();

查看videoview监听器以在视频播放完成或发生错误时得到通知(VideoView.setOnCompletionListener,VideoView.setOnErrorListener等)。


1
谢谢您的回答。我实际上对第一种选项很感兴趣。但是当我在手机上部署它时,Android会询问Internet或MediaPlayer,您知道如何摆脱它并默认使用MediaPlayer吗? - Spredzy
抱歉,我不知道强制安卓设备直接进入手机视频播放器的通用方法。但我知道,如果视频设置为渐进式下载,安卓会弹出对话框询问您是否要使用浏览器或视频播放器。而设置为流媒体RTSP的视频将直接在视频播放器中打开。 - Ryan Reeves
嘿,@rreeverb,这个方法在慢设备上播放视频足够快吗?(例如,它使用默认播放器,该播放器使用DSP..?) - kagali-san
它可以使用视频网址,但是当我提供实时视频网址时,它无法播放。有没有办法从网络流式传输实时视频到Android?当前正在播放的视频应该是可记录的。 - ABI

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