FMOD声音断断续续。
以下是源代码。
result = FMOD_System_CreateSound(gSystem, songPath, FMOD_CREATECOMPRESSEDSAMPLE | FMOD_SOFTWARE, 0, &gSound);
CHECK_RESULT(result);
__android_log_write(ANDROID_LOG_INFO, "path", songPath);
result = FMOD_System_PlaySound(gSystem, FMOD_CHANNEL_FREE, gSound, 0, &gChannel);
CHECK_RESULT(result);
答案 0 :(得分:2)
口吃通常是由于音频缓冲不足以处理向扬声器传送音频的延迟造成的。这可能是由应用程序的CPU使用率激增或操作系统调度更改引起的(例如应用程序进入后台状态)。
我建议尝试使用System :: setDSPBufferSize,默认值为1024(缓冲区大小)x 4(num buffers)。考虑增加缓冲区的数量,直到口吃变得稳定为止。
对于Android,考虑使用基于Java的AudioTrack输出模式和FMOD,而不是将其保留为默认值。在System :: init之前使用System :: setOutput(FMOD_OUTPUTTYPE_AUDIOTRACK),这种模式通常更稳定。