首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建stagefright插件

如何创建stagefright插件
EN

Stack Overflow用户
提问于 2013-03-12 08:41:11
回答 1查看 5.9K关注 0票数 4

我的任务是将视频解码器集成到Stagefright(安卓的多媒体框架)中。我搜索并找到了关于为Stagefright创建一个新插件的以下内容

要添加对新格式的支持,需要:

  • 如果容器还不受支持,则开发一个新的Extractor类。
  • 开发一个新的解码器类,实现StageFright核心读取数据所需的接口。
  • 将要读取的文件的mime类型关联到OMXCodec.cpp文件中的新解码器和kDecoderInfo数组中。
代码语言:javascript
复制
    static const CodecInfo kDecoderInfo[] = {  
        {MEDIA_MIMETYPE_AUDIO_AAC, "OMX.TI.AAC.decode"},
        {MEDIA_MIMETYPE_AUDIO_AAC, "AACDecoder"},
    };

以上数据是我在网上所能找到的全部数据。现在,我有一个简单的应用程序,它将一个文件作为输入,并使用android中的原生API在屏幕上呈现它。有谁能告诉我如何继续前进吗。所有这些OMXCodec.cpp和其他文件都是从哪里得到的,以及我的项目应该放在哪个目录中。请提供有关这方面的解决办法。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-12 13:39:59

从你的问题上看,你似乎是在考虑一项针对Ice-Cream Sandwich或早期版本安卓的推荐。首先,您应该清楚的是安卓的版本,即Ice-Cream Sandwich或and或JellyBean和after。在不同版本的安卓系统中,编解码器的集成是不同的

我已经对您的另一个问题发表了评论,这个问题是针对JellyBean和以后的(参考:Android:如何将解码器集成到多媒体框架中)。

如果您希望将您的编解码器集成到Ice-Cream Sandwich或之前,那么这些步骤在您的问题中已经可用。除了将解码器添加到kDecoderInfo列表中外,您还可以设置某些特殊的功能,如这里所示。

关于OMXCodec.cpp的问题,您可以在frameworks/base/media/libstagefright/找到Ice-Cream Sandwich的情况下的文件,在JellyBean的情况下找到frameworks/av/media/libstagefright/的文件。

如果您遵循了将视频解码器集成到Stagefright框架中的所有步骤,那么最简单的测试将是执行以下操作:

  1. 将媒体文件复制到SD卡中
  2. OMXCodec.cpp中,通过删除此语句//#define LOG_NDEBUG 0中的注释并在目录中运行mm来启用日志。将重新生成的libstagefright.so复制到设备上的/system/lib
  3. 启用logcat并开始捕获日志。
  4. 去库,选择您的文件,并允许标准播放器播放您的文件。
  5. 如果播放机通过搜索您的组件名选择了您的OMX组件,请检查您的日志文件。如果找到,则将编解码器集成到Stagefright中是成功的。否则,您将不得不调试并找出问题所在。

后记:

  1. 根据您的查询,我想您可能不熟悉Android源代码。请参考雄酮站点以熟悉AOSP发行版。
  2. 除非您计划支持新的媒体文件格式,否则不需要支持Extractor类。MediaExtractor抽象文件格式解析器,并帮助在媒体文件中解复用不同的曲目。

我希望有了这些信息,你应该能够让你的编解码器集成到Android系统中。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15356629

复制
相关文章

相似问题

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