`

frameworks/base/media知多少

 
阅读更多

1、./frameworks/base/media/jni

  JAVA本地调用部分。编译后生成的目标是libmedia_jni.so.

  android_media_MediaPlayer.cpp: MediaPlayer 的JAVA本地调用部分。

  它定义了一个JNINativeMethod(JAVA本地调用方法)类型的数据gMethods,

  用来描述,接口的关联信息。

  android_media_MediaRecorder.cpp: 定义了录音的本地调用实现。

  android_media_AmrInputStream.cpp: amr 编码相关的本地调用实现。

  android_media_MediaScanner.cpp: 媒体扫描相关的本地调用实现。

  soundpool/android_media_SoundPool.cpp:定义了音频系统的本地调用实现。

  2、 ./frameworks/base/media/libmedia

  ./frameworks/base/include/media/

  这里为多媒体的的底层库,编译生成libmedia.so.这个库处于android多媒体架构的核心

  位置,它对上层提供的接口主要有MediaPlayer、MediaRecorder、MediaScanner等类.

  android.meida.* 就是通过libmedia_jni.so 调用libmedia.so实现的接口实现的。

  还需要注意的是MediaPlayerInterface.h 这个头文件,他定义了MediaPlayer的

  底层接口。它主要定义了下面的类:

  MediaPlayerBase:MediaPlayerInterface的抽象基础类,里面包含了音频输出、

  视频输出、播放控制等的基本接口。

  MediaPlayerInterface、MediaPlayerHWInterface 继承自MediaPlayerBase针对不同输出作出的扩展。

  3、 ./frameworks/base/media/libmediaplayerservice

  这是多媒体的服务部分,编译生成libmediaplayerservice.so.

  MediaPlayerService.cpp 实现了一个名字为media.player的服务,MediaPlayer通过

  IPC同其实现通讯,以建立合适的播放器。

  在MediaPlayerService.cpp 会根据playerType的类型来决定创建不同的播放器。

  现有的播放器类型有PVPlayer、MidiFile、VorbiPlayer三个播放器类,他们都是有继承

  MediaPlayerInterface得到,具有相同的播放接口。我们这里可以通过继承MediaPlayerInterface

  的方法,实现增加新的播放器实现。

分享到:
评论

相关推荐

    Android的MediaPlayer架构介绍

    多媒体底层库在`frameworks/base/media/libmedia/`,编译后为`libmedia.so`,多媒体服务部分在`frameworks/base/media/libmediaplayerservice/`,编译为`libmediaplayerservice.so`。OpenCore相关的代码位于`...

    Android7.0 Audio Framework——framework introduce.pdf

    底层库在以下的目录中:`frameworks/av/media/media/libmedia`。这部分的内容被编译成库 `libmedia.so`。 4. Audio 的服务部分:`/frameworks/av/services/audio` 和 `/frameworks/av/services/audiopolicy/`。这...

    Android的MediaPlayer架构介绍.pdf

    MediaPlayer 部分的头文件在 frameworks/base/include/media/ 目录中,这个目录是和 libmedia.so 库源文件的目录 frameworks/base/media/libmedia/ 相对应的。主要的头文件有以下几个:IMediaPlayerClient.h ...

    Android Audio 音频开发

    Audio 的框架部分头文件路径:frameworks/base /include/media/ 源代码路径:frameworks/base /media/libmedia/ Audio 本地框架是 media 库的一部分,本部分内容被编译成库 libmedia.so,提供音频部分的接口(包括...

    android4.0camera源码

    预览框架处理摄像头数据的显示,这部分代码主要在`frameworks/base/graphics/java/android/view/SurfaceView.java`和`frameworks/base/media/java/android/media/MediaRecorder.java`。SurfaceView用于显示摄像头的...

    Wi-Fi NFC和GPS

    ### Wi-Fi、NFC在Android架构中的应用与技术解析 #### 一、Android系统架构概述 Android系统由Google公司开发,是一款广泛应用于智能手机和平板电脑的操作系统。Android系统基于Linux内核,具备高度的定制性和扩展...

    AndroidAudio系统概述[参考].pdf

    (1)Audio的Java部分代码路径:frameworks/base/media/java/android/media与Audio相关的Java包是android.media,主要包含AudioManager和Audio系统的几个类。 (2)Audio的JNI部分代码路径:frameworks/base/core/...

    安卓Android源码——video.zip

    2. **MediaCodec**: MediaCodec是Android的编码和解码服务,位于`frameworks/av/media/libmedia`下的`libmedia.so`库中。这个组件提供了硬件加速的编码和解码能力,支持多种音频和视频格式,如H.264、AAC等。通过`...

    安卓Android源码——手机拍照.zip

    在源码中,MediaRecorder的实现位于`frameworks/base/media/libstagefright/`。 5. **Surface** 在拍照过程中,Surface对象用于接收来自相机的数据流,可以是显示预览的SurfaceView或者用于图像处理的Surface...

    ubuntu 下patch 的做法

    [work@VM4:~/android_eRD3.1] $> git add src/frameworks/base/media/java/android/media/Ringtone.java [work@VM4:~/android_eRD3.1] $> git commit -m "Defect #12620" Created commit 683e099: Defect #12620 ...

    Android_Audio系统概述.doc

    - **Audio的框架部分**:头文件位于`frameworks/base/include/media`,源代码在`frameworks/base/media/libmedia`,编译成`libmedia.so`。 - **AudioFlinger**:代码位于`frameworks/base/libs/audioflinger`,...

    Android系统原理及开发要点详解电子书(第7章)

    3. **Audio的框架部分**:包括头文件`frameworks/base/include/media/`和源代码`frameworks/base/media/libmedia/`,编译为libmedia.so库,提供了基于Binder IPC机制的Audio接口。 4. **AudioFlinger**:位于`...

    android audio system

    - **源代码路径**:`frameworks/base/media/libmedia/` - **主要内容**:这部分内容被编译为`libmedia.so`库,提供了基于Binder IPC机制的Audio接口。 ##### 4. AudioFlinger - **代码路径**:`frameworks/base/...

    电子麦克风.zip

    在`frameworks/base/media/java/android/media`目录下的源码中,你可以研究它们的实现细节。 4. **音频权限和Policy管理**:在Android中,应用需要获取相应的权限才能访问麦克风。这些权限管理在`frameworks/base/...

    Android 源码

    5. **库和框架**:包括了各种库文件和API,如OpenGL ES、SQLite、Media Framework等,它们在`frameworks/base`和`system/framework`目录下。 6. **用户界面(UI)**:Android的UI框架包括视图系统、布局管理等,由`...

    Android Camera 模块

    Camera 部分的头文件在 frameworks/base/include/ui/目录中,这个目录是和 libmedia.so 库源文件的目录 frameworks/base/libs/ui/ 相对应的。 Camera 主要的头文件有以下几个: * ICameraClient.h * Camera.h * ...

    大神分享-Android ActivityManager 系统文档分析

    - `frameworks/av/media/libmediaplayerservice/ActivityManager.cpp`:媒体播放服务中与ActivityManager交互的部分。 - `frameworks/base/core/jni/android_app_NativeActivity.cpp`:原生Activity与Java层交互的...

    Android的Audio系统.

    - **源代码路径**:`frameworks/base/media/libmedia/` - **生成库**:`libmedia.so` 本地框架层是Audio系统的核心部分,它包含了Audio系统的所有本地接口实现,以及基于Binder IPC机制的通信逻辑。 ##### 4. ...

Global site tag (gtag.js) - Google Analytics