网站排名分析 用户需求,长沙景点图片,毕业设计网站题目,网站建设招投标我们最近出了一个问题#xff0c;我们点击播放音乐#xff0c;然后再点击停止播放的时候#xff0c;喇叭还会输出一段杂音后喇叭才会停止输出。经过排查发现#xff0c;在代码里面就做了这个功能代码在AudioFlinger.h 里frameworks/av/services/audioflinger/AudioFlinger.… 我们最近出了一个问题我们点击播放音乐然后再点击停止播放的时候喇叭还会输出一段杂音后喇叭才会停止输出。经过排查发现在代码里面就做了这个功能代码在AudioFlinger.h 里frameworks/av/services/audioflinger/AudioFlinger.h
为啥有这个功能我咨询了一个大佬是这样回复的这个操作应该是做来解决一直开关导致的po音的 看看有没有数据帧的callback在停的时候有没有再被调用你关了3S秒是有可能有popo音的再声明下这个 3s 的时间是Google默认设定的时间如果是做音频的同学可以关注一下这个特性而且是自己的产品的话需要根据自己的要求进行修改。来一张audio框架图片Audio代码位置AudioTrack.java
framework/base/media/java/com/android/media/AudioTrack.javaandroid_media_track.cpp
framework/base/core/jni/android_media_track.cppMemoryHeapBase
framework/base/libs/binder/MemoryHeapBase.cppMemoryBase.h
framework/base/include/binder/MemoryBase.hAudioTrack.cpp
framework/base/libmedia/AudioTrack.cppaudio_track_cblk_t声明
framework/base/include/private/media/AudioTrackShared.haudio_track_cblk_t定义
framework/base/media/libmedia/AudioTrack.cppMain_MediaServer.cpp
framework/base/media/mediaserver/Main_MediaServer.cppAudioFlinger.cpp
framework/base/libs/audioFlinger/AudioFlinger.cppAudioHardwareInterface.h 不同厂商的HAL位置会不同
hardware/libhardware_legacy/include/hardware_legacy/AudioHardwareInterface.hAudioMixer.cpp
framework/base/libs/audioflinger/AudioMixer.cppAudioSystem.h
framework/base/include/media/AudioSystem.hAudioSystem.cpp
framework/base/media/libmedia/AudioSystem.cppAudioPolicyInterface.h
hardware/libhardware_legacy/include/hardware_legacyAudioPolicyManagerBase.cpp
framework/base/libs/audioflinger/AudioPolicyManagerBase.cppAudioService.java
framework/base/media/java/com/android/media/AudioService.javaAndroid_media_AudioSystem.cpp
framework/base/core/Jni/Android_media_AudioSystem.cpp
主要要关注audioflinger和audiopolicy这两个服务再看看一些调用关系的图片AudioTrackAudioTrack属于Audio系统对外提供的API接口类在java层和native层都有对应类。AudioFlinger AudioFlinger是audio的核心AudioTrack的数据需要经过AudioFlinger进行混音等处理这里的数据最终会写入到Audio 的HAL层。audioFlinger和audiopolicy实例化AudioFlinger::instantiate();
AudioPolicyService::instantiate();
AudioPolicyAudioFlinger控制的是输入和输出AudioPolicyService控制着整个音频系统所以AudioPolicy创建完成后音频系统也就开始工作了。我们在很多地方看到有资料说的AudioPolicy是音频系统的策略管理系统也就是这个意思。推荐阅读 专辑|Linux文章汇总 专辑|程序人生 专辑|C语言嵌入式Linux微信扫描二维码关注我的公众号