最新微软官方MSDN原版Win10系统下载

当前位置:主页 > 系统教程 > Win10教程 >

188博金宝网页官网|Android重力感应实现方式简介

时间:2023-01-25    来源:188博金宝网页官网    人气:

本文摘要:Android中对于图形界面以及多媒体的涉及操作者较为更容易构建。而且对于大多数手机用户来说,他们主要也就是根据这些方面的功能来对系统那个展开改动。我们可以通过本文讲解的Android多媒体框架的源码理解,来具体分析一下这方面的基本知识。 Android多媒体框架的代码在以下目录中:external/opencore/。

188博金宝网页官网

Android中对于图形界面以及多媒体的涉及操作者较为更容易构建。而且对于大多数手机用户来说,他们主要也就是根据这些方面的功能来对系统那个展开改动。我们可以通过本文讲解的Android多媒体框架的源码理解,来具体分析一下这方面的基本知识。

  Android多媒体框架的代码在以下目录中:external/opencore/。这个目录是Android多媒体框架的根目录,其中包括的子目录如下右图:  *android:这里面是一个上层的库,它基于PVPlayer和PVAuthor的SDK构建了一个为Android用于的Player和Author。  *baselibs:包括数据结构和线程安全性等内容的底层库  *codecs_v2:这是一个内容较多的库,主要包括编解码的构建,以及一个OpenMAX的构建  *engines:包括PVPlayer和PVAuthor引擎的构建  *extern_libs_v2:包括了khronos的OpenMAX的头文件  *fileformats:文件格式的据明确解析(parser)类  *nodes:编解码和文件解析的各个node类。  *oscl:操作系统相容库  *pvmi:输入输出掌控的抽象化模块  *protocols:主要是与网络涉及的RTSP、RTP、HTTP等协议的涉及内容  *pvcommon:pvcommon库文件的Android.mk文件,没源文件。

  *pvplayer:pvplayer库文件的Android.mk文件,没源文件。  *pvauthor:pvauthor库文件的Android.mk文件,没源文件。

  *tools_v2:编译器工具以及一些可登记的模块。  Splitter的定义与初始化  以wav的splitter为事例,在fileformats目录下有解析wav文件格式的pvwavfileparser.cpp文件,在nodes目录上有pvmf_wavffparser_factory.cpp,pvmf_wavffparser_node.h,pvmf_wavffparser_port.h等文件。

  我们由底往上看,vwavfileparser.cpp中的PV_Wav_Parser类有InitWavParser(),GetPCMData(),RetrieveFileInfo()等解析wav格式的成员函数,此类应当就是最后的解析类。我们搜寻PV_Wav_Parser类被中用的地方由此可知,在PVMFWAVFFParserNode类中有PV_Wav_Parser的一个指针成员变量。

188博金宝网页官网

  再行搜寻由此可知,PVMFWAVFFParserNode类是通过PVMFWAVFFParserNodeFactory的CreatePVMFWAVFFParserNode()成员函数分解的。而CreatePVMFWAVFFParserNode()函数是在PVPlayerNodeRegistry::PVPlayerNodeRegistry()类构造函数中通过PVPlayerNodeInfo类被登记到Oscl_Vector《PVPlayerNodeInfo,OsclMemAllocator》的vector中,在这个构造函数中,AMR,mp3等node也是某种程度被登记的。  由上由此可知,Android多媒体框架中对splitter的管理也是与ffmpeg等类似于,都是在框架的初始化时登记的,只不过Opencore登记的是每个splitter的factory函数。

  综述一下splitter的定义与初始化过程:  每个splitter都在fileformats目录下有个对应的子目录,其上有各自的解析类。  每个splitter都在nodes目录下有关对应的子目录,其上有各自的统一模块的node类和nodefactory类。  播出引擎PVPlayerEngine类中有PVPlayerNodeRegistryiPlayerNodeRegistry成员变量。

  在PVPlayerNodeRegistry的构造函数中,将AMR,AAC,MP3等splitter的输出与输入类型标明和nodefactory类中的createnode与releasedelete模块通过PVPlayerNodeInfo类push到Oscl_Vector《PVPlayerNodeInfo,OsclMemAllocator》iType成员变量中。  当前Splitter的给定过程  PVMFStatusPVPlayerNodeRegistry::QueryRegistry(PVMFFormatTypeaInputType,PVMFFormatTypeaOutputType,Oscl_Vector《PVUuid,OsclMemAllocator》aUuids)函数的功能是根据输出类型和输入类型,在已登记的nodevector中找寻否有给定的node,有的话传到其唯一辨识标识PVUuid。

  从QueryRegistry这个函数至底向上搜寻可获得,在android中splitter的给定过程如下:  android_media_MediaPlayer.cpp之中定义了一个JNINativeMethod(JAVA本地调用方法)类型的数组gMethods,供java代码中调用MultiPlayer类的setDataSource成员函数时寻找对应的c++函数  1.{setDataSource,(Ljava/lang/String;)V,(void*)  android_media_MediaPlayer_setDataSource},  2.staticvoidandroid_media_MediaPlayer_setDataSource  (JNIEnv*env,jobjectthiz,jstringpath)  此函数中再行获得当前的MediaPlayer实例,然后调用其setDataSource函数,起源于路径  3.status_tMediaPlayer::setDataSource(constchar*url)  此函数通过调getMediaPlayerService()再行获得当前的MediaPlayerService,constsp《IMediaPlayerService》service(getMediaPlayerService());  然后新建一个IMediaPlayer变量,sp《IMediaPlayer》player(service-》create(getpid(),this,fd,offset,length));  在sp《IMediaPlayer》MediaPlayerService::create(pid_tpid,constsp《IMediaPlayerClient》client,constchar*url)中  调status_tMediaPlayerService::Client::setDataSource(constchar*url)函数,Client是MediaPlayerService的一个内部类。  在MediaPlayerService::Client::setDataSource中,调sp《MediaPlayerBase》MediaPlayerService::Client::createPlayer(player_typeplayerType)  分解一个承继自MediaPlayerBase的PVPlayer实例。  以上就是对Android多媒体框架的源代码的理解。


本文关键词:188,博,金宝,网页,官网,Android,重力,感应,实现,188博金宝网页官网

本文来源:188博金宝网页官网-www.stcuthbertsrcwigan.com

相关文章

  • 188博金宝网页官网|有望PK注塑?5种高速尼龙3D打印技术

    188博金宝网页官网|有望PK注塑?5种高速尼龙3D打印技术

    高速的高性能尼龙3D打印机技术相继经常出现,在某些应用于场景下未来将会PK塑料。背景:据理解,中国一年塑料的零件产品就多达4000万吨,产值万亿元...
    2023-01-25 03.01.01
  • 物联网标准之争你需要知道的事

    物联网标准之争你需要知道的事

    作为一年一度的科技风向标,CES告诉他我们2016不会是物联网之年(也有人说道是虚拟现实之年)。不过虽然市面上早已有了智能车门,智能洗衣机,智能门...
    2023-01-21 03.01.01
  • 正在改变人类的12项科技VR/可穿戴/无人机等

    正在改变人类的12项科技VR/可穿戴/无人机等

    当前全球科技正在高速发展,并费伊了一系列新技术,如无人机、大脑感官头带,以及一系列之前不能在科幻电影中才能看到的神秘设备。 这其中,哪些技...
    2023-01-21 03.01.01
  • 未来物联网中智能公共交通终端设计

    未来物联网中智能公共交通终端设计

    随着经济的发展,城市公交事业有了快速增长的发展,主要展现出在:车辆逆靓,站点减少,营运时间缩短,线路激增,市民上下班时已深感这种尚之信的...
    2023-01-21 03.01.01
  • 188博金宝网页官网-DC/DC转换器之接地环路

    188博金宝网页官网-DC/DC转换器之接地环路

    DC/DC转换器为整个系统中的各个电路供电。尽管每个电路在测试台上有可能展现出很好,但系统整体性能却往往约将近各个电路的性能效果。为什么?有许...
    2023-01-17 03.01.02

Win10教程排行榜

更多>>

U盘装系统排行榜

更多>>

系统教程排行榜

更多>>

公众号