【发布时间】:2015-10-28 08:30:53
【问题描述】:
我最近开始玩弄 Android。一旦声音结束并返回之前的活动,我正试图开始一些事情。
spool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
int soundID = spool.load(this, card.getSound(), 1);
spool.play(soundID, 500, 500, 1, 0, 1f);
我看不到任何有关获取声音持续时间或任何类型的声音结束事件的信息。我知道 SoundPool 会很痛苦,所以我愿意放弃它。
声音结束后我该怎么做?我可以使用 SoundPool 执行此操作吗?还是我找错了树?
谢谢。我对 Android 和 Java 还很陌生,所以对所有建议持开放态度。
【问题讨论】:
-
过去我自己走这条路,我会选择 Fabian 并切换到 MediaPlayer。 SoundPool 没有这方面的事件,而且如果您的声音样本的长度超过几秒钟,您可能会遇到它们刚刚切断的问题,因为 SoundPool 的声音固定缓冲区大小非常小(据我记得,没有很好的记录。) MediaPlayer 有一个完成侦听器,可以播放任意长度的样本。可以将 SoundPool 视为对游戏中简短的“一劳永逸”音效有用,MediaPlayer 对其他一切有用。
标签: android android-activity android-mediaplayer soundpool