如何编写一个用于Android的音效驱动和控制程序

 我来答
huanglenzhi
2015-12-03 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517193
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  软件需求(Windows环境):
  Windows操作系统、最新版Cygwin、Android NDK r8或更高、Eclipse、最新版Android SDK
  专业技术需求:
  掌握基本C/C++语法、掌握基本Java语法、基本Android UI设计、定点数学原理和算法、基本音频处理技术
  可选高级技术需求:
  IIR/FIR滤波器、FFT、Thumb/ARM汇编、NEON指令集
  
  1、什么是Android里的音效驱动,它是什么架构。
  从Android 2.3版开始,在系统多媒体框架里增加了一个SoundFX层,这个层就是“音效处理过程”。当多媒体系统运作时,框架允许将一个“标准”的SoundFX库载入对应媒体流的Mixer处。SoundFX库需要遵循OpenSLES架构,即所谓的标准就是实现一个基于OpenSLES架构的.so库。
  SoundFX可以被加载到任何一个音频流上,每个音频流使用会话ID作为标识符。注意:0表示系统总输出的音频流会话ID。一般情况下音效驱动就要加载到这个流上,才可以对系统内所有的声音做处理(包括音视频播放器、游戏、铃声等)。
  同样的,每一个SoundFX在加载时/后都有很多配置参数和控制权的优先级。而完成对SoundFX的加载就需要一个控制程序。控制程序一般由Java语言在Eclipse中实现,通俗的说控制程序就是一个Android的apk程序。SoundFX可以理解为Windows系统里的底层混合器,控制程序可以理解为Windows的控制面板,在控制面板上控制SoundFX的加载和启动,各个参数的设置等。当一个控制程序启动后,它首先要做的事情就是按照OpenSLES框架来通知系统加载一个SoundFX到一个媒体流,然后通过UI交互来启用/禁用该SoundFX,同时根据UI来控制SoundFX的参数,当退出时也需要通知系统卸载该SoundFX。
  
  2、从哪开始?
  因为Android规定SoundFX必须基于OpenSLES,所以最先要做的事情就是选择一个效果器的类型。这是为什么呢?到底是什么意思呢?OpenSLES规定一个效果器要有两个必须的条件,一个是该效果器的类型,一个是该效果器的唯一识别码。这两个东西在C/C++语言中是按照GUID结构体来存储的(GUID是什么?找度娘)。
  其中类型的GUID是OpenSLES定死的,音量(SL_IID_VOLUME)、采样率控制(SL_IID_PLAYBACKRATE)、均衡器(SL_IID_EQUALIZER)、预设混响(SL_IID_PRESETREVERB)、环境混响(SL_IID_ENVIRONMENTALREVERB)、3D定位(SL_IID_3DLOCATION)、多普勒效应(SL_IID_3DDOPPLER)、低音增强(SL_IID_BASSBOOST)、升降调(SL_IID_PITCH)、虚拟化(SL_IID_VIRTUALIZER)。这里没有你想要的?你想自定义?什么,你要做一个高音增强?无论做什么,都得在这里面选一个。为了简单一点,那就选虚拟化吧,虚拟化只有一个固定参数。(这里没看明白?那就把整个教程都看完,相信看到最后你会明白的)
  下一步是生成一个自己独一无二的GUID来给自己的SoundFX命名。生成的办法有很多,有现成软件也有网页。这里我生成的是{42C6510E-1811-4857-8CA5-C204A8A3B0D4}。
  以上提及的详细内容和编程指导请阅读Android NDK\platforms\android-14\arch-arm\usr\include\SLES\OpenSLES.h。(Android 4.0对应android
杭州一知智能科技有限公司
2022-03-17 广告
电话机器人主要就是用来模拟人工通话的一组程序,一般由,CRM系统,语义识别,转换文字,话术体系,这是软的部分,再加上底层软交换和通信模块一起,合并起来就是一套完整的电话机器人系统。电话机器人可以代替真人进行电话工作的,像是电话营销、售后回访... 点击进入详情页
本回答由杭州一知智能科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式