主要调用awesomeplay.cpp的函数来实现音视频等功能,可以说是对awesomeplay.cpp的封装,进一步抽象,然后提供给上层调用,主要的调用者是MediaPlayerService.cpp。提供的API如下:

1.        StagefrightPlayer::StagefrightPlayer():mPlayer(new AwesomePlayer)

l  AwesomePlayer对象赋值给mPlayer,这里完成真正的初始化工作,后面使用mPlayer较多

2.        StagefrightPlayer::~StagefrightPlayer()

3.        status_tStagefrightPlayer::initCheck()//检查上面的初始化是否完成

4.        status_tStagefrightPlayer::setDataSource//封装了status_tAwesomePlayer::setDataSource_l()

5.        status_tStagefrightPlayer::setDataSource

6.        status_tStagefrightPlayer::setVideoSurface(const sp<ISurface> &surface) //设置视频播放的界面

7.        status_tStagefrightPlayer::prepare() {

returnmPlayer->prepare();

}

8.        status_tStagefrightPlayer::prepareAsync()

9.        status_tStagefrightPlayer::start()

10.    status_tStagefrightPlayer::stop()

11.    status_tStagefrightPlayer::pause()

12.    boolStagefrightPlayer::isPlaying()

13.    status_tStagefrightPlayer::seekTo(int msec) //用来控制播放的命令

14.    status_tStagefrightPlayer::getCurrentPosition(int *msec)

15.    status_tStagefrightPlayer::getDuration(int *msec)

16.    status_tStagefrightPlayer::reset()

17.    status_tStagefrightPlayer::setLooping(int loop) //设置循环

18.    player_typeStagefrightPlayer::playerType() //选择播放引擎是STAGEFRIGHT_PLAYER? PV_PLAYER ? 或者  SONIVOX_PLAYER

19.    status_tStagefrightPlayer::suspend() //挂起

20.    status_tStagefrightPlayer::resume() //唤醒

21.    status_tStagefrightPlayer::invoke//调用

22.    voidStagefrightPlayer::setAudioSink(const sp<AudioSink> &audioSink) //设置音频输出:解码后的数据

23.    status_tStagefrightPlayer::getMetadata //获取媒体元数据

android stagefright awesomeplayer 分析的更多相关文章

  1. Android APP性能分析方法及工具

    近期读到<Speed up your app>一文.这是一篇关于Android APP性能分析.优化的文章.在这篇文章中,作者介绍他的APP分析优化规则.使用的工具和方法.我觉得值得大家借 ...

  2. Android之mtklog分析

    Android之mtklog分析 [海外场测反馈][xxx]动态测试时对比机xxxx拨打测试机xxxxx自动挂断电话 工作中遇到一个掉话的问题,需要分析log,log比较大,我也没法上传,就简答的讲讲 ...

  3. Android源码分析-全面理解Context

    前言 Context在android中的作用不言而喻,当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context,而这个Context到底是什么呢,这个问题好像很好回答又好像 ...

  4. cocos2d-x for android:SimpleGame分析

    cocos2d-x for android:SimpleGame分析 作为cocos2d-x的标配DEMO,SimpleGame可算是给入门学cocos2d-x的俺们这些新手门学习的对象了,那么来分析 ...

  5. Android内存机制分析1——了解Android堆和栈

    //----------------------------------------------------------------------------------- Android内存机制分析1 ...

  6. Android 内存管理分析(四)

    尊重原创作者,转载请注明出处: http://blog.csdn.net/gemmem/article/details/8920039 最近在网上看了不少Android内存管理方面的博文,但是文章大多 ...

  7. Qualcomm Android display架构分析

    Android display架构分析(一) http://blog.csdn.net/BonderWu/archive/2010/08/12/5805961.aspx http://hi.baidu ...

  8. Android 消息处理源代码分析(1)

    Android 消息处理源代码分析(1) 在Android中,通常被使用的消息队列的代码在文件夹\sources\android-22\android\os下,涉及到下面几个类文件 Handler.j ...

  9. Android平台APK分析工具包androguard的部署使用和原理分析

    原创文章,转载请注明出处,谢谢. Android应用程序分析主要有静态分析和动态分析两种,常见的静态分析工具是Apktool.dex2jar以及jdgui.今天突然主要到Google code上有个叫 ...

随机推荐

  1. Eclipse上改动Jython代码的Comment颜色

    1.问题起因 依据上一篇文章<MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)>搭配好Eclipse上面的MonkeyRu ...

  2. 设置 git config 的一些默认配置

    设置 git status的颜色. git config --global color.status auto 一.Git已经在你的系统中了,你会做一些事情来客户化你的Git环境.你只需要做这些设置一 ...

  3. Jquery根据字段内容设置字段宽度

    来博客园很久了,初次写文章,新手,请大牛见谅! 前段时间遇到的问题,通过gridview后台动态生成table,列和行数量未知,要求根据每个单元格内容的多少,设置宽度,每一列选择本列最大的宽度. ta ...

  4. SPOJ 1811 Longest Common Substring (后缀自动机第一题,求两个串的最长公共子串)

    题目大意: 给出两个长度小于等于25W的字符串,求它们的最长公共子串. 题目链接:http://www.spoj.com/problems/LCS/ 算法讨论: 二分+哈希, 后缀数组, 后缀自动机. ...

  5. hdu2037 经典贪心入门

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  6. [poj2449]Remmarguts' Date(spfa+A*)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Remmarguts' Date Time Limit: 4000MS   Mem ...

  7. poj 1149

    #include <cstdio> #include <cstring> #include <queue> #define _clr(x, y) memset(x, ...

  8. 前端学习书籍大全 包含PDF地址

    JavaScript类: javascript高级程序设计 pdf下载 ---->教程 javascript权威指南 pdf下载  ---->教程 javascript基础教程 pdf下载 ...

  9. css 背景图片拉伸[转]

    http://www.jeasyuicn.com/css-background-image-stretching.html background-image:url(bg.png); -moz-bac ...

  10. 如何使用Assetic进行文件管理

    安装和配置Assetic 从symfony2.8开始,Assetic就不再被包括在symfony标准版.使用任何Assetic的特性之前需要安装AsseticBundel,在命令行执行下面命令: $ ...