Android 在Mediaplayer循环时增加延迟

Android 在Mediaplayer循环时增加延迟,android,android-mediaplayer,Android,Android Mediaplayer,使用MediaPlayer类播放.wav文件。因为我需要循环我设置的音频。setLooping(true)。因此,很明显,问题是每次播放音频时如何添加延迟,比如我希望延迟5000 这里类似问题的答案在我的案例中不起作用。任何帮助都将不胜感激。这是我的密码: Button Sample = (Button)findViewById(R.id.samplex); Sample.setOnClickListener(new View.OnClickListener() { @

使用
MediaPlayer
类播放
.wav
文件。因为我需要循环我设置的音频
。setLooping(true)。因此,很明显,问题是每次播放音频时如何添加延迟,比如我希望延迟
5000

这里类似问题的答案在我的案例中不起作用。任何帮助都将不胜感激。这是我的密码:

 Button Sample = (Button)findViewById(R.id.samplex);
    Sample.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

    String filePath = Environment.getExternalStorageDirectory()+"/myAppCache/wakeUp.wav";

            try {
                mp.setDataSource(filePath);
                mp.prepare();
                mp.setLooping(true);

            }
            catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            mp.start();

        }


    });

您需要注册2个侦听器(完成时和出错时),然后需要在完成时回调中延迟下一次播放。错误侦听器的原因是返回
true
,以避免在出现错误解释时调用完成事件

每当销毁方法为(
Activity.onDestroyed()、Fragment.onDestroy()、View.onDetachedFromWindow()
)时,请确保正在删除可运行回调,例如

@Override
protected void onDestroy() {
    super.onDestroy();
    ...
    button.removeCallbacks(loopingRunnable);

    if (mp != null) {
        if (mp.isPlaying()) {
            mp.stop();
        }

        mp.release();
        mp = null;
    }
}

您需要注册2个侦听器(完成时和出错时),然后需要在完成时回调中延迟下一次播放。错误侦听器的原因是返回
true
,以避免在出现错误解释时调用完成事件

每当销毁方法为(
Activity.onDestroyed()、Fragment.onDestroy()、View.onDetachedFromWindow()
)时,请确保正在删除可运行回调,例如

@Override
protected void onDestroy() {
    super.onDestroy();
    ...
    button.removeCallbacks(loopingRunnable);

    if (mp != null) {
        if (mp.isPlaying()) {
            mp.stop();
        }

        mp.release();
        mp = null;
    }
}