Android多媒体系统的业务

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

#Android 多媒体应用的主要业务

  1. Music Player
  2. Video Player
  3. Camera
  4. Sound Recorder
  5. VideoCamera
  6. Media Metadate

#媒体播放器结构 媒体播放器是多媒体中最重要的一个环节,媒体播放器涉及以下内容:

  • 本地媒体框架中的媒体播放器部分
  • PVPlayer(实现的核心代码)
  • 音频、视频编解码模块(可选)
  • 音频输出环节
  • 视频输出环节(Surface系统或者Overlay)
  • android.media.MediaPlayer类
  • android.view.Surface类
  • android.widget.VideoView类
  • Music应用程序包和Camera应用程序包(视频播放的MovieView类)

媒体播放器的模块结构

  • 典型的数据流在Android媒体播放器中的运行情况是:上层的Java应用程序将媒体的URI(可以是媒体文件和流媒体)作为输入设置到媒体播放器中,经过Java框架、JNI和本地框架,一直设置到由PVPlayer中。在这个过程中,只是传递了媒体URI路径,并无数据流传递。由PVPlayer进行解析后,将媒体分成音频流(MP3、AMR、AAC等)和视频流(H263、H264、MPEG4等),经过编解码器的处理和同步(AVSync),转换成原始数据(音频一般是PCM,视频一般是YUV或者RGB格式)。音视频原始数据将被送入音频和视频的输出环节中。
  • 在实现的过程中,媒体播放器可能有一些变化:仅有音频数据时,只需要进行音频解码,且不需要做音视频的同步工作:硬件的解码环节可以作为PVPlayer的插件完成编解码工作;标准的实现是解码环节解码后,音视频的原始数据从用户控件传递到音视频输出环节中,但是如果使用硬件解码器,音视频的原始数据也可以不经过用户控件,直接输入到硬件设备上;作为视频的输出设备,可以基于Android中的通用的Surface接口或者Overlay系统。

#照相机系统结构

照相机是多媒体中比较独立的环节,照相机涉及的内容如下:

  • 本地的Camera的框架;
  • 图像编码模块(可选);
  • 视频输出环节(Surface系统或者Overlay);
  • android.hardware.Camera类;
  • android.view.Surface类;
  • Camera应用程序包。

Android照相机系统的模块结构

Android的照相机系统主要有两种业务:取景器(ViewFinder)和拍摄照片。取景器实现了预览(Preview)功能,拍摄照片的输出是照片文件,取景器预览的输出是Android的Surface。照相机一般只需要实现JPEG数据的编码,不需要视频流编码,因此通常不经过PacketVideo。


#录音机系统结构

录音机系统只设计音频部分,其结构比较简单。录音机涉及的内容如下:

  • 本地媒体框架中的媒体记录器部分
  • PVAuthor(实现的核心部分)
  • 音频编码模块(可选)
  • 音频输入环节
  • android. media.MediaRecorder类
  • SoundRecorder包

Android录音机系统的模块结构

  • Android的录音机功能比较单一,其数据流的运转情况通常是从音频的输入环节中获得PCM数据,经过PVAuthor进行编码,编码后加入媒体的头信息形成音频媒体文件。录音的编码也可以使用硬件的编码环节。
  • 录音机的Java应用SoundRecorder具有录音完成后播放功能,因此既需要调用Java框架的媒体记录器部分,也需要调用媒体播放器部分。

#摄像机系统结构

摄像机是多媒体中比较复杂的一个部分,摄像机涉及的内容如下:

  • 本地媒体框架中的媒体记录器部分;
  • PVAuthor(实现的核心部分);
  • 音频/视频编码模块(可选);
  • 音频输入环节;
  • Camera的本地接口(作为视频输入环节);
  • 视频输出环节(Surface系统或者Overlay);
  • android.media.MediaRecorder类;
  • android.view.Surface类;
  • android.widget.VideoView类;
  • Music包和Camera包。

Android摄像机系统的模块结构

  • Android的摄像机系统有3个方面的业务:视频预览、视频录制、音频录制。摄像机系统单纯的视频预览功能和照相机的预览基本一致。在录制的过程中,实际上是视频预览和录制、音频录制三者同时进行的,视频原始数据从Camera的硬件硬件抽象层送上后,将同时被送到视频输出系统和PVAuthor中;音频原始数据从音频的输入设备中得到,也被送入打牌PVAuthor中,PVAuthor对音频数据进行同步和编码之后,增加媒体文件的头信息,写入到媒体文件上。在这个过程中,编码环节也可以使用硬件实现的插件模块,以提高系统的性能。
  • 媒体录制和媒体播放的过程基本相反,但是多了视频预览的环节。
  • 摄像机的Java应用是Camera包中的VideoCamera,视频播放的应用也被包含在Camera包中,基于VideoView实现。

《Android系统原理及开发要点详解》笔记   by2015.2.23晚
复制代码

请支持原创,尊重原创,转载请注明出处:blog.csdn.net/kangweijian…

猜你喜欢

转载自juejin.im/post/7106316710805782542