整体看看Android的多媒体系统(多图)

本文详细探讨了Android多媒体框架的结构,包括输入输出、中间处理、Java API、JNI调用、OpenCore播放器、媒体库、服务组件,以及以MP3播放器为例的实际应用。涉及Musicplayer、Videoplayer、Camera等功能模块和关键库如libmedia、mediaserver等。

简介

Android 多媒体部分的框架涉及到应用层、Java框架、C语言框架、硬件抽象层等环节。

多媒体主要包括两方面内容:

1、输入输出环节(音频视频的输入输出)
2、中间处理环节(编解码环节)

其中,输入输出环节由其他方面的硬件抽象层实现,中间处理环节在framework实现,可以使用硬件加速。

Android 多媒体的业务:

  1. Music player
  2. Video player
  3. Camera
  4. Sound Recorder
  5. Camcorder
  6. Video Telephone

Java 类:

frameworks/base/media/java/android/media/
类的名称为 android.media.*

JAVA 本地调用部分( JNI ):

frameworks/base/media/*
这部分内容编译成为目标是 libmedia_jni.so.

基于 OpenCore 的多媒体播放器和记录器

external/opencore/

多媒体框架的 media 库:

frameworks/base/include/media/
frameworks/base/media/libmedia/
这部分的内容被编译成库 libmedia.so 。

多媒体服务部分:

frameworks/base/media/libmediaplayerservice/
这部分内容被编译成库 libmediaplayerservice.so 。

从多媒体应用实现的角度,主要包括两方面的内容:

1、输入输出环节 (音频、视频纯数据流的输入输出系统)
2、中间处理环节 (文件格式处理环节和编解码环节)

以一个 MP3 播放器为例,从功能的角度就是将一个 mp3格式的文件作为播放器的输入,将声音从播放设备输出。从实现的角度,MP3 播放器经过了以下的阶段: MP3 格式的文件解析、 MP3 编码流的解码、 PCM 输出的播放。

 多媒体的业务

Android 多媒体系统的整体业务

 音频 / 视频播放器

Camera

录音机

摄像机

 libmedia的框架部分

1、媒体播放器

  2、媒体记录器

3、媒体元信息

 多媒体的服务

多媒体服务的守护进程的代码:frameworks/base/media/mediaserver

其中只有一个源文件main_mediaserver.cpp,将被编译成为一个可执行程序mediaserver。它负责启动了多媒体服务、照相机服务、音频服务这三个服务。


Android 的多媒体系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值