第三方媒体播放器SDK或其他选项

时间:2011-06-10 17:23:06

标签: java android video

我正在为多媒体网站编写一个应用程序,我经常遇到问题。

在抓取视频流URL(包含在mp4容器中的h264)并尝试使用原生视频播放器播放后,它会失败。这是在我的Moto Droid上运行2.2(BB)和2.3(CM7)。我已经在我的Xoom(3.1库存)上测试了应用程序并且效果很好。我也有一个朋友在她的Xperia Arc上测试它(据我所知2.3库存)它对她有效。让我觉得这是一个硬件解码器问题,因为我可以使用RockPlayer的软件解码器播放流,但不能使用硬件解码器。

所以我想在这里找到三件事:

  1. 原生Android播放器是否支持软件解码?如果是这样,我如何判断它是使用硬件还是软件,是否可以切换?

  2. 是否有任何第三方媒体播放器都有现成的SDK(免费)?

  3. 我怎么能在Rock Player这样的其他应用中打开视频,因为我知道它有效?当我使用浏览器下载视频时,它会询问我想要它使用的视频播放器。如何在我的应用程序中弹出这个,然后将视频发送给它?

2 个答案:

答案 0 :(得分:3)

  

1)原生Android播放器   支持软件解码。如果是的话,怎么样   如何判断它是否使用硬件或   软件是否可以切换?

您拥有的只是默认编解码器。你无法“切换”任何东西。唯一的选择是提供您自己的软件编解码器,使用Android NDK构建并捆绑在APK中。

  

2)是否有任何第三方媒体   拥有随时可用的SDK的玩家   (免费)。

GPAC的MP4Box的作者提供了Osmo4 for Android,一个从头开始构建的替代视频播放器,包括软件编解码器。它是开源的: http://sourceforge.net/apps/trac/gpac/browser/trunk/gpac/applications/osmo4_android

  

3)我怎样才能打开视频   另外一个像Rock Player这样的应用程序   知道它有效。当我下载视频时   使用浏览器,它问我什么   我想要它使用的视频播放器。怎么能   我在我的应用程序中弹出这个   然后将视频发送给它?

这种“弹出窗口”称为选择器,可以使用ACTION_VIEW intent创建,使用类似的东西:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "video/mp4");
startActivity(Intent.createChooser(intent, "View with:"));

答案 1 :(得分:0)

  

1)原生Android播放器是否支持软件解码。如果是这样,我如何判断它是否使用硬件或软件并且是否可以切换?

默认情况下,它很可能使用硬件解码器。默认支持软件解码器,但您无法从应用程序级别切换它们。