Android多媒体系统的业务

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

#录音机系统结构

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

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

Android的录音机功能比较单一,其数据流的运转情况通常是从音频的输入环节中获得PCM数据,经过PVAuthor进行编码,编码后加入媒体的头信息形成音频媒体文件。录音的编码也可以使用硬件的编码环节。

录音机的Java应用SoundRecorder具有录音完成后播放功能,因此既需要调用Java框架的媒体记录器部分,也需要调用媒体播放器部分。

#摄像机系统结构

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

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

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

媒体录制和媒体播放的过程基本相反,但是多了视频预览的环节。

  • 摄像机的Java应用是Camera包中的VideoCamera,视频播放的应用也被包含在Camera包中,基于VideoView实现。
《Android系统原理及开发要点详解》笔记   by2015.2.23晚

原文 Android多媒体系统的业务 - 掘金

★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值