-1

屏幕关闭时 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);
4

1 回答 1

2

口吃通常是由于音频缓冲不足,无法处理将音频传送到扬声器的延迟。这可能是由应用程序的 CPU 使用率峰值或操作系统调度更改(如应用程序进入后台状态)引起的。

我建议尝试使用 System::setDSPBufferSize,默认值为 1024(缓冲区大小)x 4(缓冲区数)。考虑将缓冲区的数量从 4 个增加到口吃变得稳定。

此外,对于 Android,请考虑将基于 Java 的 AudioTrack 输出模式与 FMOD 结合使用,而不是将其保留为默认值。在 System::init 之前使用 System::setOutput(FMOD_OUTPUTTYPE_AUDIOTRACK),这种模式一般比较稳定。

于 2012-12-20T11:11:47.853 回答