我正在为多媒体网站编写一个应用程序,我经常遇到问题。
在抓取视频流URL(包含在mp4容器中的h264)并尝试使用原生视频播放器播放后,它会失败。这是在我的Moto Droid上运行2.2(BB)和2.3(CM7)。我已经在我的Xoom(3.1库存)上测试了应用程序并且效果很好。我也有一个朋友在她的Xperia Arc上测试它(据我所知2.3库存)它对她有效。让我觉得这是一个硬件解码器问题,因为我可以使用RockPlayer的软件解码器播放流,但不能使用硬件解码器。
所以我想在这里找到三件事:
原生Android播放器是否支持软件解码?如果是这样,我如何判断它是使用硬件还是软件,是否可以切换?
是否有任何第三方媒体播放器都有现成的SDK(免费)?
我怎么能在Rock Player这样的其他应用中打开视频,因为我知道它有效?当我使用浏览器下载视频时,它会询问我想要它使用的视频播放器。如何在我的应用程序中弹出这个,然后将视频发送给它?
答案 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播放器是否支持软件解码。如果是这样,我如何判断它是否使用硬件或软件并且是否可以切换?
默认情况下,它很可能使用硬件解码器。默认支持软件解码器,但您无法从应用程序级别切换它们。