![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Framework开发
文章平均质量分 81
睡着的海豚
Android 多媒体开发工程师
展开
-
源码中新增API后的编译问题(Android 12)
最近公司的产品平台升级,芯片厂商换了,Android版本也由原来的Android 9 升级到了Android 12;Audio模块要求支持支持多通道录音,于是在源码里新增了几个音频通道常量的定义,包括Audio的java层和hal层,主要新增的文件如下:frameworks/base/media/java/android/media/AudioFormat.java public static int inChannelMaskFromOutChannelMask(int outMask) t.原创 2022-05-27 16:54:08 · 5294 阅读 · 5 评论 -
蓝牙音乐和导航语音播放混音卡顿问题
最近发现公司自研的智能车载设备上存在一个问题:手机通过蓝牙连接车机,在手机上播放音乐车机上发声然后跟车机上的导航语音播报一起混音播出的时候会出现卡顿的现象;但是在车机上播放音乐和导航混音就正常。另外需要说明的是播放音乐使用的是Music流,导航使用的是Alarm流通过 adb shell dumpsys media.audio_flinger 工具对比查看两种场景下实时的音频流信息(截取其中一个回放线程中的音频流信息如下):Output thread 0xe6c833c0 type 0 (MIXE原创 2021-02-14 19:36:11 · 2120 阅读 · 0 评论 -
为自定义系统服务添加SELinux权限
目录1.为设备节点添加SELinux权限2.为JAVA层的系统服务添加SELinux权限3.为Native层的系统服务添加SELinux权限4.自定义Native层系统服务如何跟随系统ROM一起编译并烧录到设备且开机自启动SELinux权限的基础理论https://blog.csdn.net/Innost/article/details/19299937https://blog.csdn.net/Innost/article/details/19641487简单理解:系.原创 2021-01-07 12:49:03 · 1383 阅读 · 0 评论 -
安卓音频模块博客汇总
目录1.基础概念2.Java层3.Native层3.1音频策略(选择输出流设备)3.2音量设置3.3音频流环形的Buffer4.HAL层以及Kernel层5.Alsa库相关6.Audio架构大纲汇总1.基础概念https://www.cnblogs.com/hzl6255/p/8245578.htmlhttps://blog.csdn.net/yangwen123/article/details/39502689https://blog.csdn.n.原创 2020-12-23 11:37:57 · 687 阅读 · 0 评论 -
车载设备上音视频应用续播功能的实现
任务:ACC OFF之前,获取系统中正在播放音频应用的pid列表,在下次ACC ON时的时候拉起这些播放音频的应用(当然还需要集合上层根据pid获取应用包名的功能)1.在Framework层添加Property属性,并赋予audioserver进程读写的权限/device/qcom/msm8953_64/msm8953_64.mk...PRODUCT_COPY_FILES += device/qcom/msm8953_64/whitelistedapps.xml:system/etc/whi原创 2020-12-23 11:58:44 · 552 阅读 · 0 评论 -
为应用程序设置独立音量的实现
概述:目前安卓系统上,音量是根据音频流类型来分类控制的,有媒体音量,闹钟音量,铃声音量等,也即是一旦增大媒体音量,那么所有媒体应用的音量都跟着增大,无法做到每个媒体应用有自己独立的音量。本方法在混音器为音频流Track混音前,设置了应用程序所属的音频流Track的音量从而达到应用程序音量相互独立的目的,满足了车载用户同时使用多个媒体应用时无法实现音量多样化的需求,改善了用户多音频交互的体验。技术背景:安卓系统中管理音频模块的Native层核心系统服务AudioFlinger(简称AF),掌管着音频.原创 2020-12-27 13:28:45 · 629 阅读 · 0 评论 -
车载设备上分区音效的实现
最近产品同事在车机上提出了一个分区音效的功能:语音控制车机上的音视频类应用程序,动态调节音频的左右声道以及低音.思路:Android中控制音频的类主要是AudioTrack,在创建AudioTrack类对象时AudioFlinger系统服务会分配一个随机生成的sessionID(默认情况下sessionID是自动增长且唯一的),因此要想在自己的应用程序里控制第三方应用的音效,需要获取到第三方应用程序的pid以及sessionID;pid还比较容易获取,应用程序开始播放音频的时候,有个音频获取焦点的事件;原创 2020-10-10 20:46:57 · 1576 阅读 · 0 评论 -
JAVA反射的高级用法之操作集合,泛型
反射相关的基础知识参考:https://blog.csdn.net/sinat_38259539/article/details/71799078总的来说,反射利用的是在运行时状态,类的对象在内存中只有一例的原理,通过类对象间接的访问/操作类的实例对象;我这里总结一些比较少见的使用场景,主要是通过反射操作集合,泛型等.现在有GordanDemo类的相关信息如下package com....原创 2020-04-16 12:36:28 · 997 阅读 · 0 评论 -
隐藏Android系统的鼠标
公司最近有自研云桌面相关的产品,不过Server端使用的操作系统不是Linux也不是Windows,而是Android系统,有些类似于华为的云手机,Client端登录服务器以后要操作Server端,而且产品要求操作Server端是以触摸的方式像操作本地的手机一样,但默认情况下Android系统都会有个鼠标的图标,这样很影响体验,于是就有了个这个隐藏鼠标的需求,下面记录下修改的过程:安卓系统中有...原创 2020-03-17 18:10:45 · 1591 阅读 · 1 评论 -
Android多应用同时录音
基于Android N 7.1多应用同时录音/frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.cppaudio_io_handle_t AudioPolicyManager::getInputForDevice(audio_devices_t device, ...原创 2020-03-15 16:18:13 · 1574 阅读 · 0 评论 -
AS中使用自定义SDK编译应用程序
1) design new API in xxx.java based on your requirements.Maybe you have to touch more related files: android_media_xxx.cpp, xxx.ccp, etc.2) builda) make update-apib) make -j8c) make sdk ...原创 2020-01-16 15:13:14 · 535 阅读 · 0 评论