1.Video Playback的流程
在Android上,预设的多媒体框架(multimedia framework)是OpenCORE。OpenCORE的优点是兼顾了跨平台的移植性,而且已经过多方验证,所以相对来说较為稳定;但是其缺点是过於庞大复杂,需要耗费相当多的时间去维护。从Android 2.0开始,Google引进了架构稍為简洁的Stagefright,并且有逐渐取代OpenCORE的趋势 (註1)。

[图1] Stagefright在Android多媒体架构中的位置。

[图2] Stagefright所涵盖的模组 (註2)。
以下我们就先来看看Stagefright是如何播放一个影片档。
Stagefright在Android中是以shared library的形式存在(libstagefright.so),其中的module – AwesomePlayer可用来播放video/audio (註3)。AwesomePlayer提供许多API,可以让上层的应用程式(Java/JNI)来呼叫,我们以一个简单的程式来说明video playback的流程。
在Java中,若要播放一个影片档,我们会这样写:
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(PATH_TO_FILE); … (1)
mp.prepare(); … (2)、(3)
mp.start(); … (4)
在Stagefright中,则会看到相对应的处理;
(1) 将档案的绝对路径指定给mUri

status_t AwesomePlayer::setDataSource(const char* uri, …)
{
return setDataSource_l(uri, …);
}
s

Video Playback的流程相关推荐

  1. Embedded video playback halted;module v4l2src0 reported:Internal data flow error

    使用opencv调用摄像头获取视频时报出如下错误 [ WARN:0] OpenCV | GStreamer warning: Cannot query video position: status=0 ...

  2. android 4.1 多媒体本地播放流程video playback (三)

    上一篇我们讲了mediaplayer播放的第一步骤setdataSource,下面我们来讲解preparesync的流程,在prepare前我们还有setDisplay这一步,即获取surfacete ...

  3. stagefright框架(四)-Video Buffer传输流程

    這篇文章將介紹Stagefright中是如何和OMX video decoder传送buffer. (1) OMXCodec會在一開始的時候透過read函式來傳送未解碼的data給decoder,並且 ...

  4. Stagefright框架解读(—)音视频Playback流程

    转载请注明出处:http://blog.csdn.net/itachi85/article/details/7216639 从Android 2.0,Google引进了Stagefright,并在an ...

  5. stagefright框架(三)-選擇Video Decoder

    在<Stagefright (1) – Video Playback的流程>中,我們並沒有詳述Stagefright是如何根據影片檔的類型來選擇適合的video decoder,現在,就讓 ...

  6. stagefright,OpenMax框架

    转自:http://blog.chinaunix.net/space.php?uid=10995602&do=blog&view=me&frmd=-1 stagefright框 ...

  7. android stagefright框架

    http://blog.csdn.net/mirkerson/article/details/38520135 stagefright框架(一)Video Playback的流程 在Android上, ...

  8. android stagefright 框架

    原文:[转]android stagefright 框架 链接:http://blog.chinaunix.net/uid-9838896-id-2976618.html 在Android上,预设的多 ...

  9. Android之mediarecorder中的方法以及工作流程的过程

    嵌套.关联的类 class MediaRecorder.AudioEncoder 定义音频编码 class MediaRecorder.AudioSource 定义声音资源 interface Med ...

最新文章

  1. 自动布局按钮排列平均分布
  2. php视频录制插件,Chrome浏览器录屏扩展插件
  3. java+spring+mysql配置_用spring的beans配置mysql数据库
  4. 客户的一个紧急bug,我用了两种方式进行 C# 反编译修改源码
  5. C语言:字符数组赋值
  6. PHP - 验证用户名
  7. Ansible 详细用法部署安装
  8. php 判断设备是手机还是平板还是pc
  9. 数学建模需要的Matlab知识速成
  10. CISCO Nexus 系列交换机配置命令
  11. 请简述GC(垃圾回收)产生的原因,并描述如何避免?
  12. SQLHelper蓦然回首
  13. 游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)
  14. 当Apple TV+的生态化反梦,撞上一个“日渐昂贵”的流媒体市场
  15. 百练_1664:放苹果_递归
  16. python读取中文txt乱码问题
  17. Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型
  18. android 文字点击展开,仿微信朋友圈,文字展开全文,全文收起功能
  19. 报告!优维科技EasyOps®️全栈运维平台又一大波新功能上线
  20. 栈展开(stack unwinding)

热门文章

  1. 转听郭德纲说段相声!
  2. 地砖中间高四边低_地砖留缝多少适合 主要是由这4种要素决策的
  3. 必应终于把首页的图片替掉了。
  4. 计算机在自动化未来领域方向,计算机在电力自动化系统中的应用实践(原稿)
  5. 通过数据分析提升客流量和销售额
  6. can‘t convert np.ndarray of type numpy.object_
  7. 77种互联网盈利创新模式
  8. 安卓 关于隐藏虚拟按键
  9. 解题-->在线OJ(七)
  10. Elasticsearch简单搜索以及聚合分析