Android上可靠的顺序音频播放

时间:2012-08-07 09:23:10

标签: android audio media-player playback sequential

我正在编写一款安卓游戏,用于教孩子们数数。通过声音片段将指令读取到播放器,声音片段组合在一起形成句子(例如“Place”,“one”,“cow”,“in”,“barn”。这需要一定的可靠性,当它延迟时间使指令的流动听起来很自然。

目前我正在使用MediaPlayer,在OnCompletionListener中播放每个声音。每个声音都有它自己的MediaPlayer,它是在播放任何声音开始之前创建和准备的(以减少延迟) - 但是在每次声音播放之前我仍然会遇到很大的延迟(第二次似乎某种缓存有发生了,它工作正常)。

声音不是很多而且非常短,它应该可以更好地使用SoundPool,但SoundPool无法知道音频何时完成,因此无法选择。

有没有人有类似问题的经验和可行的解决方案?

1 个答案:

答案 0 :(得分:0)

我已将handlerOnCompletionListener一起使用,我可以在两种声音之间进行延迟。

这样,

CommonMethod.player.setOnCompletionListener(new OnCompletionListener() {

                            @Override
                            public void onCompletion(MediaPlayer mp) {
                                // /will use count and loop as per number of
                                // repetition chosen.
                                handler.postDelayed(new Runnable() {

                                    public void run() {
                                        if (counter >= limit) {
                                            CommonMethod.player.stop();
                                        } else {
                                            CommonMethod.player.start();
                                        }
                                        counter++;
                                    }
                                }, 3000);
                            }
                        });