Android多媒体系统的业务

2023-10-24 01:59

本文主要是介绍Android多媒体系统的业务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客)

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晚

请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客)

这篇关于Android多媒体系统的业务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/kangweijian/article/details/43924653
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/271967

相关文章

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Android 实现一个隐私弹窗功能

《Android实现一个隐私弹窗功能》:本文主要介绍Android实现一个隐私弹窗功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 效果图如下:1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来res/l

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络