傻大方


首页 > 学习 >

基于|基于Android的OpenMAX框架研究与开发硕士学位论文( 五 )



按关键词阅读: android 基于 论文 硕士学位 开发 研究 框架 OpenMAX


2.2.3 Android Runtime(Android运行时库)Android包含一个核心库 , 为Java编程语言核心类库提供了各种可用的功能 , 使得每个Android程序都是虚拟机中的一个实例 , 都有自己的进程 , 拥有对立性 。
Dalvik虚拟机为应用程序提供了一个良好的远行环境 , 同时一个设备可以远行多个Dalvik虚拟机 。
Dalvik虚拟机执行的是.dex文件 。
2.2.4 Application Framework(应用软件架构)开发者使用所有API框架可以和核心应用程序一 。

34、样的权限 。
该应用程序的架构设计简化了组件的重用;每一个人都可以发布自己写的应用程序里面的功能块 , 同时其他开发者也可以调用他的功能块来开发应用程序 。
同样 , 由于应用程序的可复用机制也使各个用户可以非常方便地替换各个程序组件 。
每个软件开发都会有服务和系统支撑 , 这其中包括:视图(Views):效果非常好可以扩展 , 可以被应用程序调用 , 并且很丰富 , 它包括按钮(Buttons) , 列表(Lists)、文本框(Text Boxes)、网格(Grids)、甚至包括可嵌入的Web浏览器;内容提供器(Content Providers):让各个应用程序可以实现数据的共享 , 可以一个程序访问另外一个程序的数据 , 实现咯数据 。

35、的分享;资源管理器(Resource Manager):管理和访问各种非代码的资源 , 包含对本地字符串、布局文件(Layout Files)和图形的管理; 2.2.5 Application(应用程序)Android发布的时候会和它同一系列一些核心应用程序包一起发布 , 该应用程序重要包括JAVA编写的一些应用程序 , 比如一些视频播放器 , 摄像程序 , 图片浏览等等 。
所有的应用程序都是使用Java语言编写12 。
2.3 Android系统的多媒体框架Android的多媒体主要框架部分包含了应用程序、JAVA框架层、C语言框架层、硬件抽象层等环节 。
媒体的播放的时候实际上就是由下层的OpenCORE或Stagef 。

36、right等多媒体框架实现的13 。
Android的系统的多媒体框架在Android2.2版本之前主要使用的是OpenCORE , 在Android2.3版本之后使用的是Stagefright 。
具体的分析如下图 2.2 Android 多媒体播放整体框架最上层的JAVA应用程序是使用媒体URI(媒体文件或者流媒体)来作为多媒体框架输入设置给媒体播放器 , 经过了Java框架层 , 到Jni层 , 在到本地框架层 , 一直设置到引擎PVPlayer 。
这个过程就是为媒体设置了媒体URI的路径 , 但是这个时候数据传递还没有开始 。
当开启了PVPlayer , 再进入到PVPlayer后开始进行了解析 , 再根据媒体的格式把文件分成了 。

37、音频流(MP3 , AMP , AAC等)和视频流(H263 , H264 , MPEG4等) , 然后经过编解码器的处理 , 把数据变成原始数据(音频通常是PCM , 视频通常是YUV或RGB格式) 。
再把音视频原始数据放在音频和视频的输出播放环节(扬声器或者显示屏等硬件)进行输出14-15 。
AwesomePlayer是Stagefright的核心类 , 创建并管理Parser(MediaExtractor), Codec(OMXCodec), Render(AwesomeRendererer)及AudioPlayer等 。
音频播放功能流程通过调用AwesomePlayer 的setDataSource 函数来设置数据源;
A 。

38、wesomePlayer 通过调用MediaExtractor的Create 函数来识别该文件的格式 , MediaPlayer 判断该文件为WMA 格式后 , 会创建一个WMAExtractor , 在创建WMAExtractor 的同时 , WMAExtractor 会解析文件头 , 获取文件中的相关信息 。
然后调用WMAExtractor的getTrack 函数创建一个WMASource;
AwesomePlayer通过OMXCodec 创建一个WMADecoder;
AwesomePlayer接着创建一个AudioPlayer , 并把WMADecoder 做为数据源传给AudioPlayer , 并调用Audio 。

39、Player 的start 函数;
AudioPlayer 获取WMADecoder中的相关参数: 文件类型、采样率、声道数 , 并根据该数据开启AudioSink , 并把AudioSinkCallback做为回调函数传给AudioSink 。
AudioPlayer 先调用WMADecoder 解第一帧数据 ,并把该数据传给AudioSink去播放 , 当播放完成后AudioSink 会调用回调函数AudioSinkCallback 再取解码后的数据 , AudioSinkCallback又会调用FillBuffer 函数获取解码后的原始数据 , 解码后数据如果被取完后 , AudioPlayer又会调用WMADec 。

40、oder 解下一帧数据给AudioSink , 来回反复 , 直到文件中数全部被播放 。
在拉动滚动条时 , 上层会传来SeekTime , 经AudioPlayer 传给WMADecoder 再传给WMAExtractor , WMAExtractor 根据上层传来的SeekTime 判断出要播放的原始数据的起始位置 , 然后从该位置读取一个数据包传给WMADecoder 解码16 。
2.4 本章小结本章为全文的第二章 , 介绍了Android操作系统构成 , 重点介绍了Android多媒体框架的组成 , 最后介绍了目前的编解码 。


稿源:(未知)

【傻大方】网址:/a/2021/0621/0022536619.html

标题:基于|基于Android的OpenMAX框架研究与开发硕士学位论文( 五 )


上一篇:薪酬|薪酬制度范本

下一篇:党政领导|党政领导班子运行情况分析报告