我目前正在尝试使用 Expo AV 模块循环音频(.mp3)文件,如下所示:
await soundObject.loadAsync(assets[0], {
isLooping: true
});
await soundObject.playAsync();
音频按预期循环播放,只不过不是立即循环,而是在曲目结束后停止约 1 秒,然后再次开始。对于我的应用程序,音频循环看起来像连续的声音很重要。
我使用 Audacity 软件修剪了音频,以确保没有额外的静音。音频文件在 Garageband 和 Audacity 中循环播放得非常好,没有任何延迟。但是当我在应用程序中循环它时,似乎您正在一次又一次地停止并播放该文件。
有什么解决方法吗?到目前为止,我已在我的 iOS 设备上的 expo Go 应用程序中尝试过此操作。
这是 Expo-AV 模块的已知限制。您可以关注 expo 存储库上的open issues。
这里很好地解释了此限制的根本原因。
唯一可能的解决方法是弹出到裸工作流程并通过本机 Android/iOS 库处理音频循环(不存在此问题),并为您提供更精细的控制。