Android,在指定的时间段内重复操作
我有以下“如果条件”从加速度计的值,当设备是平的一个嘟嘟声正在不断播放。我不知道如何在指定的时间段(例如:5秒)内使此声音重复。我尝试了很多方法,但一直都在播放声音,或者不符合if条件。如果有人能帮我的话先谢谢你Android,在指定的时间段内重复操作,android,repeat,audio,Android,Repeat,Audio,我有以下“如果条件”从加速度计的值,当设备是平的一个嘟嘟声正在不断播放。我不知道如何在指定的时间段(例如:5秒)内使此声音重复。我尝试了很多方法,但一直都在播放声音,或者不符合if条件。如果有人能帮我的话先谢谢你 if (x > -0.1 && x < 0.1 && y > -0.1 && y < 0.1) { try { AssetFileDescriptor afd = getAssets().openFd(
if (x > -0.1 && x < 0.1 && y > -0.1 && y < 0.1) {
try {
AssetFileDescriptor afd = getAssets().openFd("beep.wav");
mMediaplayer = new MediaPlayer();
mMediaplayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
mMediaplayer.prepare();
mMediaplayer.start();
mMediaplayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
//mp.setLooping(false);
mp.stop();
mp.release();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
if(x>-0.1&&x<0.1&&y>-0.1&&y<0.1){
试一试{
AssetFileDescriptor afd=getAssets().openFd(“beep.wav”);
mMediaplayer=新媒体播放器();
mmediplayer.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
afd.close();
mmediplayer.prepare();
mmediplayer.start();
mmediplayer.setOnCompletionListener(新的OnCompletionListener(){
完成时的公共作废(MediaPlayer mp){
//mp.设置循环(错误);
mp.stop();
mp.release();
}
});
}捕获(例外e){
e、 printStackTrace();
}
}
为什么不在后台新的异步任务中播放媒体播放器?创建您自己的异步任务实现,然后在其构造函数中传递一个时间值,然后在那里启动mediaplayer,并继续检查它,以查看所用的持续时间是否等于传递给它的值。我想这可能会有帮助-->
您可以使用重复报警
int secondsInterval = 5; // 5 seconds for example
long interval = secondsInterval * 1000;
long firstTime = Calendar.getInstance().getTimeInMillis();
Intent i = new Intent(ctx, AlarmHandler.class);
PendingIntent mAlarmSender = PendingIntent.getService(ctx, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) ctx.getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, firstTime, interval, mAlarmSender);
然后,您应该将代码包含在类似以下方法的Intent处理程序类(上述代码中的AlarmHandler.class)中:
@Override
protected void onHandleIntent(Intent arg0) {
// your code here
}