gpt4 book ai didi

Android 音池计时

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:17 25 4
gpt4 key购买 nike

是否有可靠的方法来防止声音池中的声音被截断?我在声音之间的 sleep() 函数上取得了一些成功,但它们有时仍然会在开始另一个声音之前错过最后一点声音。我的应用程序按顺序播放短音。杰瑞

最佳答案

虽然这是一个老问题,但我想我会在这里发布一些东西,因为我无法在网上找到解决这个问题的方法,但确实提出了一些解决方案......

我在我的应用程序启动时获取每个声音的持续时间(使用 MediaPlayer),并将 R.id.sound_name 值和持续时间存储在一起。然后我可以使用 SoundPool 播放声音。

获取时长的代码:

private long getSoundDuration(int rawId){
MediaPlayer player = MediaPlayer.create(context, rawId);
int duration = player.getDuration();
return duration;
}

在我的声音课上,我像往常一样播放声音,然后在这段时间内 sleep 。非常简单的东西。

看起来效果不错。为我提供了 SoundPool 的低延迟优势,以及链接事物的能力。

有几点需要注意:

  • 不要每次都获取持续时间,因为创建 MediaPlayer 会产生开销。
  • 持续时间取自文件元数据——ogg 对我来说非常有用,但我不能保证其他任何东西。

关于Android 音池计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3663794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com