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;
}
}