关闭
当前搜索:

Android 音频子系统,音频系统跟应用层直接相关的部分(八)

音频系统跟应用层直接相关的部分 从上层看,跟音频相关的功能概括说就是音频、视频的的录制、回放。与之直接相关的类有MediaPlayer,MediaRecorder。他们具有同时处理音频、视频的能力。 1,  MediaPlayer主要处理音视频的回放,它是一个状态机,依赖于MediaPlayerService来完成具体功能,并项应用程序反馈当前的播放情况。 如下是MediaPlayer的状态...
阅读(239) 评论(0)

Android音频子系统,音量的调节控制(七)

音量的调节控制: 按下音量的加减键,对应的keyevent是:KEYCODE_VOLUME_DOWN,KEYCODE_VOLUME_UP。 主要看两个地方对这一事件的处理,一是:handleKeyDown()@AudioManager.java,一是: interceptKeyBeforeQueueing ()@PhoneWindowManager.java。   先看AudioMana...
阅读(112) 评论(0)

Android音频子系统,音频流(六)

音频数据流 音频正常的回放过程: 比如用MediaPlayer播放音频,先要把音频文件读取到内存中,然后执行对应的解码操作,mediaplayer是在mediaplayerservice的帮助下完成解码相关操作的,mediaplayerservice会使用audiotrack完成播放功能。 一个audiotrack代表一个播放实例,系统中可能同时运行多个audiotrack实例,同时系统中也...
阅读(195) 评论(0)

Android音频子系统,Audiopolicyservice音频策略的制定(五)

Audiopolicyservice的路由实现: Audiopolicyservice作为音频策略的制定者,功能的实现跟audiotrack(使用者)有较大关联,所以在紧接着audiotrack看下路由的过程。 路由,就要有发送方,接收方,这个场景中发送发就是Audiotrack,接收方就是audioflinger(策略的执行者),audiopolicyservice是这两者的桥梁,它内部拥有...
阅读(77) 评论(0)

Android音频子系统,音频流的回放(四)

Audiotrack被用于音频流的回放,用来传输数据。 AudioTrack支持两种数据模式: 一种是Static,静态就是指数据一次性交付给对方,简单高效,一次完成所有数据的传递。适用于铃声、系统提醒等对内存要求小的播放操作。 一种是streaming,流模式和基于网络的音频流回放类似,音频数据严格按照要求不断地传递给接收方,直到结束。通常适用于音频文件较大时;音频属相要求高,如采样率高、...
阅读(216) 评论(0)

Android音频子系统,AudioPolicyService(三)

AudioPolicyService AudioFlinger是音频策略的执行者,AudioPolicyService是策略的制定者。 Android系统中声音被换分为多个种类: AudioSystem.java public class AudioSystem{ public static final int STREAM_DEFAULT = -1; public static ...
阅读(206) 评论(0)

android 音频子系统-AudioFlinger(二)

音频系统的核心:AudioFlinger AudioFlinger为上层提供访问和管理音频的接口,同时通过hal来管理音频设备。 AudioFlinger服务的启动: Framework/av/media/audioserver/main_audioserver.cpp int main(int argc __unused, char **argv){ AudioFlinger::in...
阅读(2016) 评论(1)

android 音频子系统框架(一)

Android 音频框架:   1,与应用程序开发有直接关联的是MediaPlayer,MediaRecorder。 音频系统的核心由AudioFlinger、AudioPolicyService、AudioTrack/AudioRecorder三部分构成,其中AudioFlinger、AudioPolicyService属于system service,驻留在audioserver进程...
阅读(154) 评论(0)

多媒体文件管理,资源的扫描MediaScanner(二)

多媒体文件的扫描MediaScanner 主要由两部分组成,一是MediaScannerReceiver,一是MediaScannerService,扫描的执行由广播触发。MediaScannerReceiver接收4中类型的广播: AndroidManifest.xml ...
阅读(78) 评论(0)

多媒体文件管理-数据库external.db,internal.db (一)

多媒体数据库路径:data/data/com.android.providers.media/database/external.db||internal.db 多媒体文件管理主要组成部分: 1),MediaScannerService,扫描多媒体文件。       扫描的对象包括内部、外部存储设备,它继承自service,并实现了Runnable接口,在一个独立的线程中执行扫描操作。 ...
阅读(113) 评论(0)

Camera2框架从Java层到C++层类关系

转自:http://blog.csdn.net/hejjunlin/article/details/53138945   Agenda: getSystemService(Context.CAMERA_SERVICE)CameraManager.getCameraIdList()ICameraService.aidlICameraService.cpp camera2中从Java层...
阅读(97) 评论(0)

Camera框架之Camera2

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52751055   前言:监于5.0之后Google用的是Camera2相关API取代之前的Camera,过时的Camera虽然精典,但不再进行介绍,可自行查阅相关资料。今天本文是在正式深入代码前对Camera2的一个补充。上篇中...
阅读(67) 评论(0)

Camera (api1)的打开过程

Camera (api1)的打开过程   setModuleFromIndex()@CameraActivity.java à {           mPhotoModule = new PhotoModule(); mPhotoModule.init(this,mCameraPhotoModuleRootView);          mCurrentModule= mPh...
阅读(88) 评论(0)

Gallery2 的数据加载及渲染

图库主要的显示界面 图库主要的显示界面包括:相册集AlbumSetPage,相册AlbumPage,图片预览PhotoPage,这些界面都有一个父类:ActivityState;界面的管理由StateManager负责。 public class AlbumSetPage extends ActivityState{ } public class StateManager { //根...
阅读(218) 评论(0)

camera2 (api2)打开预览过程(二)

下面就开始获取CameraService的句柄,调用CameraService中的connectDevice函数。 private CameraDeviceopenCameraDeviceUserAsync(String cameraId,            CameraDevice.StateCallback callback, Handler handler, final int ui...
阅读(624) 评论(0)
16条 共2页1 2 下一页 尾页
    个人资料
    • 访问:35860次
    • 积分:1724
    • 等级:
    • 排名:千里之外
    • 原创:133篇
    • 转载:38篇
    • 译文:0篇
    • 评论:9条
    最新评论