安卓:从URL播放FLV视频流

4
我目前有一个应用程序,可以录制视频并将其上传到我的服务器。上传视频后,该应用程序会收到一个响应,其中包含指向文件FLV流的URL。
但是,当我在Android默认视频播放器(Videos)中尝试打开该流时,什么也不会发生,但当我使用另一个应用程序(BSPlayer)时,它完美地播放了视频。然而,没有办法强制从Intent.ACTION_VIEW打开一个应用程序。以下是接收来自服务器响应的功能代码:
@Override
protected void onResponseReceived(int requestType, int status, Object resp) {
    switch (requestType) {
    case CLIP_DETAILS: {
        if (status == RESPONSE_OK) {
            String token1 = ((ResponseObject_ClipDetails) resp).m_token1;
            String token2 = ((ResponseObject_ClipDetails) resp).m_token2;
            String url = getClipURL(token1, token2);

            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setData(Uri.parse(url));
            i.setType("video/flv");
            startActivity(i);
        }

    }
        break;
    }
}

有没有办法在我的安卓应用中显示 .flv 视频?

1
你可以在服务器端更改代码,使其将视频编码为Android支持的格式。 - user942821
我正在使用一个流视频的服务。它只使用.flv格式。 - thepoosh
那么基本上你需要处理第三方库。 - user942821
2个回答

5

你可以使用Vitamio

媒体格式

除了Android平台内置的默认媒体格式外,Vitamio中还包含许多音频和视频编解码器,下面列出了其中一些。

  • divx/xvid
  • wmv
  • flv
  • ts
  • rmvb
  • mkv
  • mov
  • m4v
  • avi
  • mp4
  • 3gp

Android开发者的Vitamio SDK

您可以从这里下载jar文件并将其用于您的项目中。(Vitamio-SDK.7z)

对于Android开发人员

这是一个演示项目,它使用vitamio.jar。(Vitamio-Demo.7z)

Vitamio提供了与Android默认MediaPlayer框架类似的接口。如果您在项目中使用android.media.MediaPlayer,请从上面获取vitamio.jar,然后将其添加到您项目的libs中,并将android.media.MediaPlayer的导入替换为io.vov.vitamio.MediaPlayer。

除了Android MediaPlayer的默认接口,Vitamio还提供了更多的API,请参考库中的javadoc。


0

实际上,有一种方法可以强制打开特定的应用程序。

这个答案展示了如何做到这一点。 https://dev59.com/jWkw5IYBdhLWcg3wqMY1#10035789

只需找到BSPlayer的包名并使用它来过滤要打开视频的应用程序。当然,您还需要处理没有安装BSPlayer的情况。我建议使用queryIntentActivities() - 如果返回一个空列表,请告诉用户他们需要安装BSPlayer并启动相应的Play Store链接。

除了要求用户安装第三方应用程序之外,您还可以通过WebView实现自己的FLV播放器,尽管您仍然需要用户拥有Flash Player(但这有些不同,每个人都知道Flash Player是什么,所以要求用户安装它不应该是一个问题)

我找到了两个关于如何做到这一点的教程: 在webview中加载flv视频的问题http://www.synesthesia.it/playing-flash-flv-videos-in-android-applications


唯一的问题是我无法强制用户安装第三方应用程序。 - thepoosh
好的,还有一个技巧 - 使用WebView播放.flv文件,你需要在你的应用程序中实现播放器。我更新了答案,看看吧。 - Ivan Bartsov

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