IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Multimedia框架 -> 正文阅读

[移动开发]Multimedia框架

Multimedia框架,包含MediaPlayer, Camera, MediaCodec,Surface, MediaRecord。

MediaPlayer类是用于控制playback的视频/音频文件 及 流。

背景:

Android2.3时引入流媒体框架,而流媒体框架的核心是NuPlayer。在之前的版本中一般认为Local
Playback就用Stagefrightplayer+Awesomeplayer,流媒体用NuPlayer。

Android4.0之后HttpLive和RTSP协议开始使用NuPlayer播放器,Android5.0(L版本)之后本地播放也开始使用NuPlayer播放器。


Android7.0(N版本)则完全去掉了Awesomeplayer。
通俗点说,NuPlayer是AOSP中提供的多媒体播放框架,能够支持本地文件、HTTP(HLS)、RTSP等协议的播放,通常支持H.264、H.265/HEVC、AAC编码格式,支持MP4、MPEG-TS封装。


NuPlayer和Awesomeplayer差异:

1 NuPlayer基于StagefrightPlayer的基础类构建,利用了更底层的ALooper/AHandler机制来异步地处理请求,ALooper列队消息请求,AHandler中去处理,所以有更少的Mutex/Lock在NuPlayer中。

2 Awesomeplayer中利用了omxcodec而NuPlayer中利用了Acodec。

camera2框架

CmaeraManager: 摄像头管理者,这是一个全新的系统管理者,专门用户检测系统摄像头,打开系统摄像头,除此之外,调用CameraManager的getCameraCharacteristics(String)方法即可获取指定摄像头的相关特性。
CameraCharacteristics:摄像头特性。该对象通过CameraManager来获取,用于描述特定摄像头所支持的各种特性。
CameraDevice:代表系统摄像头。该类的功能类似于早期的Camera类。
CameraCaptureSession:这是一个与摄像头建立会话的类,当程序需要预览、拍照时,都需要先通过该类的实例创建Session。而且不管预览还是拍照,也都是由该对象的方法进行控制的,其中控制预览的方法为setRepeatingRequest();控制拍照的方法为capture()。
为了监听CameraCaptureSession的创建过程,以及监听CameraCaptureSession的拍照过程,Camera2 API为CameraCaptureSession提供了StateCallback、CaptureCallback等内部类。
CameraRequest和CameraRequest.Builder:当程序调用setRepeatingRequest()方法进行预览时,或调用capture()方法进行拍照时,都需要传入CameraRequest参数。CameraRequest代表了一次捕获请求,用于描述捕获图片的各种参数设置,比如对焦模式、曝光模式……程序需要对照片所做的各种控制,都通过CameraRequest参数进行设置。可以理解一个请求参数一样,CameraRequest.Builder则负责生成CameraRequest对象。
? ? ??Google采用了pipeline(管道)的概念,将Camera Device相机设备和Android Device安卓设备连接起来
- Android Device通过管道发送CaptureRequest拍照请求给Camera Device
- Camera Device通过管道返回CameraMetadata数据给Android Device
- 最后这一切建立在一个叫作CameraCaptureSession的会话中。
?

MediaCodec

硬编解码,底层调用dsp芯片接口。

mediaCodec = MediaCodec.createDecoderByType("video/avc");

mediaCodec.configure(mediaformat, surface, null, 0);

stagefright框架

mediaplayerservice会调到Stagefright中,进行编码解码操作。
在libsstagefright中,预设的多媒体解码是openCore,由于其过于庞大和复杂,需要成本较高,开始引进了另一个框架,也就是stagefright框架,以后默认情况android选择stagefright,但是并没有完全抛弃opencore,做了一个OMX层,仅仅是对 opencore的omx-component部分做了引用。stagefright是和opencore是并列的。Stagefright在 Android中是以shared library的形式存在(libstagefright.so),其中的module – AwesomePlayer可用来播放video/audio。 AwesomePlayer提供许多API,可以让上层的应用程序(Java/JNI)来调用。


?

NuPlayer是谷歌新研发的,AwesomePlayer存在BUG,早已在android m 版本中弃用。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:15:26  更:2022-05-08 08:17:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 23:57:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码