首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >和NuPlayer到Android2.2

和NuPlayer到Android2.2
EN

Stack Overflow用户
提问于 2012-04-24 11:49:22
回答 1查看 1.7K关注 0票数 2

我的要求是能够在我的Android应用程序中播放实时视频流。流将通过RTSP/RTP。我对源代码没有控制权;看起来RTP负载不符合“开发人员指南”( Developers Guide 视频编码建议 )中概述的要求。具体而言,视频来源似乎违反了以下要求:

对于3 3GPP和MPEG-4容器,moov原子必须先于mdat原子,但必须继承ftyp原子。

基本上,我们似乎得到了原始的H264数据(而不是包装在容器中)。

现在,

  1. 我无法在Android2.2SamsungGalaxyTab上使用MediaPlayer类播放这个流。
  2. 然而,我能够在安卓2.3三星Galaxy S上播放它。
  3. 一些第三方应用程序()也可以在2.2 Galaxy上播放相同的流。

在上面的案例2和3中,DDMS日志都指出了一个事实,即Stage框架是在内部使用的,而在案例1中,使用的是PVP (即OpenCore)。所有这些使我得出结论:

  1. OpenCore框架不能播放我的流。
  2. 我的流可以使用Stagefright播放,甚至在Android2.2上也可以播放。

这就引出了我的问题:

将stagefright移植到Android2.2涉及什么?

此外,我在AOSP源代码中注意到,较新的NuPlayer现在负责播放RTSP流。问题:

  1. 是否有可能将NuPlayer移植回较旧版本的安卓(2.2或2.3)?
  2. 如果是这样的话,我需要做什么才能在我的应用程序中使用它?

我知道我可以查看源代码并使用NDK构建stagefright和NuPlayer (尽管我从未在NDK级别工作过)。我不知道的是我的应用程序是如何使用这个NuPlayer的。

EN

回答 1

Stack Overflow用户

发布于 2012-05-15 08:41:45

我遇到了类似的问题,但我找到了一个解决办法。您必须修补系统build.prob文件。请看一下我的问题,我还发了我的回答。

默认情况下,stagefright在build.prop文件中保持禁用状态。你必须启用它并重新启动你的设备。然后,您可以访问支持您的需求的stagefright框架。

对于RTSP流,请在远程mechine中下载live555MediaServer.exe文件,并将一些媒体文件保存在相同的位置。打开live555MediaServer.exe文件。

使用以下代码-

代码语言:javascript
运行
复制
private final String RTSP_FILE = "rtsp://<remote machine IP>/<file name>";

mVideoView.setVideoURI(Uri.parse(RTSP_FILE));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10297244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档