我想在播放声音剪辑的同时每 5 秒将声音提高一级。下面是我的代码:-
MediaPlayer player;
player=MediaPlayer.create(this, R.raw.alarm);
player.setLooping(true);
有什么方法可以让我每 5 分钟跟踪一次。我怎样才能做到这一点?
我想在播放声音剪辑的同时每 5 秒将声音提高一级。下面是我的代码:-
MediaPlayer player;
player=MediaPlayer.create(this, R.raw.alarm);
player.setLooping(true);
有什么方法可以让我每 5 分钟跟踪一次。我怎样才能做到这一点?
我认为您可以使用 java 实现这一点TimerTask
,这是一个示例代码,未经测试,但无需大修改即可工作:
基本上你每 5 秒开始一个任务,在你提升你的声音级别的run()
功能中,当你到达时你调用停止任务。TimerTask
maxSoundLevel
cancel()
//Put this in global
int REFRESH_INTERVAL = 5 * 1000; //5 seconds
int maxSoundLevel = 10; // Number of loop to get to max level
int curSoundLevel = 0; //Start at 0 volume level
//Put this after you started the sound
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTimerTask(), 0, REFRESH_INTERVAL);
//Put this after your method
private class MyTimerTask extends TimerTask{
public void run() {
if(curSoundLevel < maxSoundLevel)
{
float logLevel = (float)(Math.log(maxSoundLevel-curSoundLevel)/Math.log(maxSoundLevel));
yourMediaPlayer.setVolume(1-logLevel);
curSoundLevel ++;
}
else {
this.cancel();
}
}
}
如果您有更多问题,请随时问我。