Android 7.0 Audio :通话中的音频调用接口

对于Audio在通话中的处理,根据不同的功能,有不同的调用路径,       1) 通话中 打开speaker 流程   enableSpeaker   对于在通话中打开扬声器,走图示1的调用路径,     在telephony部分,调用流程如下, InCallAudioManager. enableSpeaker--telecomAdapter.setAudi...
阅读(930) 评论(0)

Android 7.0 Audio: 按键调节音量的调用过程

(只简单描述调用过程,需对照代码看,不画图了,也不贴代码) 1.在key Event处理部分,Phonewindow会捕获到音量按键事件, Phonewindow.onkeydown-- MediaSessionLegacyHelper.getHelper(getContext()).sendAdjustVolumeBy   2.调节音量的时候要处理3件事情,界面显示、播放提示音、调节...
阅读(1133) 评论(0)

Android 7.0 Audio : Andriod Audio Overview

整个android平台的音频框架图如下,      APP 音乐播放器,录音,音效设置,电话,声音设置,视频播放器等使用声音的软件。       Framework MediaPlayer和MediaRecorder,AudioTrack和AudioRecorder,提供声音播放和录制。MediaPlayer/MediaRecorder功能更强大,也更易于使用。 Au...
阅读(579) 评论(0)

Android 7.0 Audio: AudioFlinger介绍和初始

对于AF的分析,先看其所在层的位置以及相关的交互类,       之前的版本,AF在Main_MediaServer.cpp里面启动,在android N,AF在main_audioserver.cpp里面启动,         ALOGI("ServiceManager: %p", sm.get());         AudioFlinger::instanti...
阅读(543) 评论(0)

Android 7.0 Audio: AudioSystem相关类浅析

AudioSystem在audio框架中的关系和位置如图所示,     AudioSystem提供native接口,通过jni访问native提供的audio功能,在native层,有一个对应的AudioSystem.cpp文件     Jave层主要功能清单可见代码。   这里定义了音频流的类型、输入输出器件类型等。   对于比较复杂的,如音频输入输出器件的名称如下, ...
阅读(616) 评论(0)

Android 7.0 Audio: AudioPolicyService和他的码农APM

AudioPolicyService负责音频策略处理,包括根据手机的各种状态和器件的存在、插拔状态、用户使能状态,给不同的audio stream选择不同的输入输出设备,控制不同设备的增益等。 代码层面,该类则主要是维护3个线程looper,通过不同的辅助类,向client提供服务。   AudioPolicyService的相关类关系如下,     同AudioFlinger,A...
阅读(977) 评论(6)

Android N Audio: AudioTrack 向上通知的路径

在前面介绍创建AudioTrack的native实例后,会调用set,这里就在搭建进行native AudioTrack和java层进行通信的桥梁audioCallback, android_media_AudioTrack.cpp           lpTrack = new AudioTrack();           case MODE_STREAM:   ...
阅读(171) 评论(0)

Android N Audio: AudioTrack 介绍

AudioTrack被用于PCM音频流的回放。它的使用方式如下,   //buffer int bufsize =           AudioTrack.getMinBufferSize(8000,//采样率:         AudioFormat.CHANNEL_CONFIGURATION_STEREO,//双声道                    Audi...
阅读(266) 评论(0)

Android 7.0 Audio: Mediaplayer

1.1.1           播放代码 MediaPlayer类是android framework提供的多媒体类,可以用来播放音频、视频和流媒体,MediaPlayer包含了Audio和Video的播放功能。   其基本的方法和功能简介如下: MediaPlayer     构造方法  create  创建一个要播放的多媒体  getCurrentPosition ...
阅读(756) 评论(0)

Android N Audio: Audio Track play

对于AT在应用层开始play,到AF打开输出通道的调用流程如下图示,代码分析就不赘述了, AT:AudioTrack  AF:AudioFlinger AS:AudioSystemAPII:AudioPolicyInterfaceImpl APS:AudioPolicyService APM:AudioPolicyManager   在openOutput之后,   经过艰难的跋涉,...
阅读(268) 评论(0)

Android N Audio: AF的设备加载

audio_interfaces音频设备接口有如下几类,每个类下有具体的输入输入设备, static const char * const audio_interfaces[] = {     AUDIO_HARDWARE_MODULE_ID_PRIMARY,     AUDIO_HARDWARE_MODULE_ID_A2DP,     AUDIO_HARDWARE_MOD...
阅读(384) 评论(0)

Android N Audio: setMasterVolume流程2

如上,应用部分通过setMasterVolume,最终调用到AF的setMasterVolume,   status_t AudioFlinger::setMasterVolume(float value) {     for (size_t i = 0; i         AutoMutex lock(mHardwareLock);         AudioHw...
阅读(312) 评论(0)

Android N Audio: Mute Microphone流程

下图是通过AudioManager进行setMicrophoneMute的过程,       应用可通过AudioManager获取系统服务,再调用服务提供的接口进行mute操作,     public void setMicrophoneMute(boolean on) {         IAudioService service = getService(...
阅读(443) 评论(0)
    个人资料
    • 访问:134428次
    • 积分:2148
    • 等级:
    • 排名:第16723名
    • 原创:85篇
    • 转载:20篇
    • 译文:0篇
    • 评论:44条
    最新评论