我正在为一个多媒体网站编写一个应用程序我经常遇到问题。
在抓取视频流URL(包含在mp4容器中的h264)并尝试使用原生视频播放器播放后,它会失败。
这是在我的Moto Droid上运行2.2(BB)和2.3(CM7)。我已经在Xoom (3.1 stock)
上测试了应用,效果很好。
我还有一位朋友在她的Xperia Arc
(据我所知2.3库存)测试它并且它对她有效。让我觉得这是一个硬件解码器问题,因为我可以使用RockPlayer's software decoder
播放流,但不能使用硬件。
所以我想在这里找到三件事:
- 原生Android播放器是否支持软件解码。如果是这样,我如何判断它是否使用硬件或软件并且是否可以切换?
- 是否有任何第三方媒体播放器提供随时可用的SDK(免费)。
- 我怎么能在Rock Player等其他应用中打开视频,因为我知道它有效。当我使用浏览器下载视频时,它会询问我想要它使用的视频播放器。 如何在我的应用中弹出这个内容,然后将视频发送给它?
醇>
答案 0 :(得分:0)
是的,Android提供软件h264解码器,但它可能在2.2中不可用。您可以首选软件编解码器,请参阅stagefright的AOSP源代码:
usage: stagefright [options] [input_filename] … -s(oftware) prefer software codec …
ffmpeg在Android上有许多衍生品和包装器,可以提供各种许可限制。
启动针对特定应用的Intent非常容易。您可以使用setComponent()完全匹配您需要的活动。处理问题的更好和更灵活的方法是创建自定义选择器(参见例如Custom filtering of intent chooser based on installed Android package name),以让用户决定她/他喜欢哪个玩家。使用自定义选择器,您可以决定隐藏一些注册到Action的处理程序(例如,不要在3.0以下的Android版本上使用系统播放器)。