我正在尝试使用本机反应制作节拍器,但声音播放遇到问题。我曾经使用ExpoAV播放声音,但是当我在expo应用程序上运行它时,声音非常不稳定,有时会跳动。我猜测按时播放声音的最佳方法是使用本机模块?有没有办法在本机反应中正确地解决它?
这是我使用的代码:
const soundTimer = setInterval(() => {
if (clickSound._loaded) {
try {
clickSound.replayAsync();
} catch (err) {
console.log(err.message);
}
}
}, 60000/tempo);
编辑: 经过更深入的搜索之后,我在Stack Overflow上找到了一个已经回答的问题(我知道,以前可以做到这一点...)。基本上,问题不在于expo-av模块,而在于JavaScript计时器,该计时器可以在单个线程上平衡精度和性能。这是link。