Android音频循环

| 尽管我是一位经验丰富的开发人员,但我是Android的新手,并且希望开发一个应用程序,以在通过Android麦克风输入的用户定义的音频片段之间循环播放。 我想在点击循环点时尽可能降低延迟(即,寻找该部分的起点并继续播放的最短时间)。 我遵循一些一般性建议,例如: 音频文件格式 我应该考虑播放哪些类(例如,声音池,媒体播放器等) 感谢您的任何建议 戴夫
已邀请:
您可以像这样使用Media Player和OnCompletetionListener:
    MediaPlayer mp;
    mp = MediaPlayer.create(getApplicationContext(), R.raw.yoursound);
    mp.setOnCompletionListener(new OnCompletionListener() {

        public void onCompletion(MediaPlayer mp) {
            mp.create(getApplicationContext(), R.raw.nextsound);
            mp.prepare();
            mp.start();
        }

    });
    mp.prepare();
    mp.start();
至于声音文件类型,我从没注意到它们之间的很大差异。我倾向于使用.mp3或.ogg,尽管仅仅是因为文件大小比.wav小。 编辑:啊,我明白了,如果您想一遍又一遍地播放整个音频文件,您只需要像下面这样调用setLooping(true):
    MediaPlayer mp;
    mp = MediaPlayer.create(getApplicationContext(), R.raw.yoursound);
    mp.setLooping(true);
    mp.prepare();
    mp.start();
如果您尝试一次播放完整的音频文件,则一遍又一遍地循环播放其中的一小部分,您可以使用completelistener中的.seekTo()方法,如下所示:
    MediaPlayer mp;
    mp = MediaPlayer.create(getApplicationContext(), R.raw.yoursound);
    mp.setOnCompletionListener(new OnCompletionListener() {

        public void onCompletion(MediaPlayer mp) {
            // TODO Auto-generated method stub
            mp = MediaPlayer.create(getApplicationContext(), R.raw.yoursound);
            mp.seekTo(3000); //3 seconds in
            mp.prepare();
            mp.start();
        }

    });
    mp.prepare();
    mp.start();

要回复问题请先登录注册