Android:从网址播放flv视频流

时间:2012-06-06 08:24:58

标签: android video-streaming streaming-flv-video

我目前有一个应用程序可以录制视频并将其上传到我的服务器。上传视频后,应用会获得一个响应,其中包含指向文件的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 个答案:

答案 0 :(得分: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中,并用io.vov.vitamio.MediaPlayer替换android.media.MediaPlayer的导入。

     

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

答案 1 :(得分:1)

答案 2 :(得分:0)

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

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

只需查看BSPlayer的套餐名称,然后使用它来过滤应用以打开您的视频。当然,在没有安装BSPlayer的情况下,您还需要处理这种情况。我建议使用queryIntentActivities() - 如果它返回一个空列表,告诉用户他们需要安装BSPlayer并启动相应的Play商店链接。

如果没有要求用户安装第三方应用程序,你也可以通过WebView实现自己的flv播放器,虽然你仍然需要用户拥有flash播放器(但是有些不同,每个人都知道Flash播放器是什么,所以要求用户安装它应该不是问题。

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

答案 3 :(得分:0)

这很简单

使用此

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

愿它有助于......