您的位置:首页 > 移动开发 > Android开发

FMOD在Android系统中播放声音抖动问题

2014-05-16 16:16 781 查看

1. 简介

在Android系统升级到Android4.4之后,发现FMOD在Android系统中播放声音会出现抖动,导致声音不正常。边赫赫有名的"极品飞车"都有问题。

经查验,是FMOD的DSP Buffer Size与Android中的Audio HAL的period size不匹配造成的。

fmodex.so中默认的DSP Buffer Size是512,据悉现在Audio HAL的period size都扩大至1024、或2048、或4096。

2. 解决方案

为了使自己的游戏具有更好的兼容性,需要设置fmod DSP Buffer Size,如在我的盒子上的解决方案如下:

FMOD_RESULT result = FMOD_OK;

unsigned int bufferlength;
int numbuffers;

result = FMOD_System_Create(&gSystem);
CHECK_RESULT(result);

result = FMOD_System_GetDSPBufferSize(gSystem,&bufferlength,&numbuffers);
CHECK_RESULT(result);
LOGD("IDONG:bufferlength=%d,numbuffers=%d",bufferlength,numbuffers);

result = FMOD_System_SetDSPBufferSize(gSystem,4096,4); // must be before FMOD_System_Init
CHECK_RESULT(result);

result = FMOD_System_Init(gSystem, 32, FMOD_INIT_NORMAL, 0);
CHECK_RESULT(result);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: