4

我目前有一个应用程序可以录制视频并将其上传到我的服务器。上传视频后,应用程序会收到一个响应,其中包含指向文件的 flv 流的 URL。

当我尝试在 android 默认视频播放器(视频)中打开流时,没有任何反应,但是当我使用不同的应用程序(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;
    }
}

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

4

3 回答 3

5

您可以使用维生素

媒体格式

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

  • divx/xvid
  • wmv
  • flv
  • ts
  • rmvb
  • MKV
  • 移动
  • m4v
  • avi
  • mp4
  • 3gp

适用于 Android 开发者的 Vitamio SDK

您可以在此处下载 jar 文件以用于您的项目。(Vitamio-SDK.7z)

对于安卓开发者

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

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

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

于 2012-06-26T09:02:40.740 回答
0

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

这个答案显示了如何做到这一点。 https://stackoverflow.com/a/10035789/375929

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

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

我找到了两个关于如何做到这一点的教程: Problem to load flv video in webviewhttp://www.synesthesia.it/playing-flash-flv-videos-in-android-applications

于 2012-06-26T08:00:06.027 回答
0

就这么简单

用这个

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(PATH_OF_FILE), "video/flv");
startActivity(intent);   

愿它有帮助...

于 2012-06-28T06:33:55.913 回答