工程源代码下载:http://download.csdn.net/detail/jsgaobiao/9489669

Ø 【实验目的】

本次实验的目的是在安卓系统上开发一个虚拟声音应用,能够根据原始音频和

用户选择的音源角度产生虚拟的立体声音效果。

Ø 【实验器材】

Android Studio 1.5.1

Xiaomi Pad (7.9’’): Android 4.4.4 , 1536*2048 xhdpi

Ø 【实验原理】

一、算法思路

采用简介的界面设计,顶部有两个按钮,供用户选择虚拟声音的播放和停止。当用户按下播放键时,会自动播放从正前方按顺时针方向旋转的立体环绕音乐。

自由场情况下,声波从声源到双耳鼓膜处的传输函数称为头相关传输函数(HRTF),对应的时域冲激响应称为头相关冲激响应(HRIR),通过事先测得的 HRIR数据和原始音频数据做卷积,即可得到预计的虚拟声音信号。

二、程序结构


静止虚拟声音的合成,根据声源方位通过数据库读取该点的左右耳HRIR数据,用单通道声音文件分别卷积两耳HRIR数据,合成双通道的声音。

对于环绕的动态虚拟声音的合成,我是将待播放的音频等份为360/5份,每分对应着一个5度的环绕音。用对应角度的HRIR数据和该小段的音频进行卷积,0-360都处理完后,进行自动播放,就形成了环绕一圈的立体虚拟音的效果。

主要实现代码如下:

Ø 【小结】

我通过本次实验,了解了环绕声的实现方式、HRIR数据的获取和使用。在实验中,我发现每次做卷积都会花费很多时间,因此我在实现的时候,默认在后台自动处理卷积的过程,并将结果保存下来,这样用户在使用时点击播放按钮后就免去了等待的时间,提升了用户体验。

更多相关文章

  1. android 3.0 环境下, 用webview 打开视频
  2. 创建一个android项目与创建一个android虚拟设备
  3. Android(安卓)与J2ME 虚拟机相关资料
  4. android studio 绘制时钟刻度表盘的虚拟动画。
  5. Android中实现听筒中播放声音
  6. 使用android x86进行android应用开发.
  7. VS2015 Android
  8. android 实时采播录音播放或发送出去
  9. Android判断设备是否有NavigationBar(虚拟按键)并获取它的高度

随机推荐

  1. 1.markdown语法及部分html标签
  2. 预处理语句与存储过程
  3. PDO预处理中的prepare()和execute()方法
  4. PHP 数据对象 (PDO)
  5. 跨境电商怎么做?在小县城能做吗?
  6. Android之SQLite学习
  7. Android中的资源与国际化
  8. 【Android-Error】Android(安卓)4.4.4 ja
  9. android手机开发(一)环境配置
  10. 转:Android中shape的使用