主要调用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. 利用boost获取时间并格式化

    利用boost来获取当前时间又方便快捷,还不用考虑跨平台的问题. 1. 输出YYYYMMDD #include <boost/date_time/gregorian/gregorian.hpp& ...

  2. servlet获得完整路径

    request.getQueryString() request.getParameterMap() request.getParameterNames() 在servlet中GET请求可以通过Htt ...

  3. OutputCache各参数的说明

    OutputCache各参数的说明 Duration 缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的. Location Location当被设置为 ...

  4. Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format.

    I have installed a Web application on IIS 7.0 windows server 2008 R2 64 bit OS I am refering a oracl ...

  5. JavaScript禁止用户多次提交方法

    [当服务器超载时,会出现提交卡顿的现象,但是用户在操作时,会不停重复点击提交,会造成服务器压力更大.所以我们需要进行限制] [1]将提交按钮禁止 <html> <head> & ...

  6. WebBrowser中取对应的图片资源

    在客户端中使用webbrower控件,控件中已显示网页,对应的图片资源应已下载完,下面从缓存中找到图片资源,两种方法都可 1.GetUrlCacheEntryInfo http://msdn.micr ...

  7. self和this的不同

    在Java和C++中,this总是指的是当前实例地址,而在静态方法也就是类方法中,是不可以使用this的.在Objectvie-C中,self是既可以出现在实例方法中,也可以出现在类方法中,并且在不同 ...

  8. 用Apache Ivy实现项目里的依赖管理

    Apache Ivy是一个管理项目依赖的工具. 它与Maven  Apache Maven 构建管理和项目管理工具已经吸引了 Java 开发人员的注意.Maven 引入了 JAR 文件公共存储库的概念 ...

  9. ububru下 redmine安装教程

    1.安装之前确认你已经安装好了mysql 2.连接mysql创建数据库 mysql -u root –p CREATE DATABASE redmine CHARACTER SET utf8; CRE ...

  10. haproxy之负载均衡算法

    backend     blance 算法 动态hash的特点     服务器运行时就可进行权重调整,即只需要重新载入配置文件即可,不需要重新启动haproxy     支持慢速启动,即重新恢复的后端 ...