【发布时间】:2016-01-05 16:40:37
【问题描述】:
我正在学习为 Android 编写代码,但我遇到了问题……也许是性能问题? 我想每秒播放很短的声音。我创建了一个 CountDownTimer(滴答间隔 20 毫秒,非常准确),并在 onTick 中播放它。但是声音不是在一秒钟后播放的,我能听到 - 这就是问题所在......
我的代码片段:
private class ExerciseCountDownTimer extends CountDownTimer
{
...
public void onTick(long millisUntilFinished)
{
...
if(/*this is a next second not just a tick*/)
playSound(R.raw.quick_rest, true);
}
}
private void playSound(int resId, boolean releaseAfter)
{
if (currentMediaPlayerRes != resId || mediaPlayer == null)
{
if (mediaPlayer != null)
{
if (mediaPlayer.isPlaying())
mediaPlayer.stop();
mediaPlayer.reset();
mediaPlayer.release();
}
currentMediaPlayerRes = resId;
mediaPlayer = MediaPlayer.create(this, resId);
if (releaseAfter)
{
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer mp)
{
mediaPlayer.release();
mediaPlayer = null;
}
});
}
}
mediaPlayer.start();
}
这样的计数器有可能吗?
【问题讨论】:
-
也许这篇文章会帮助你找到你需要的东西。 stackoverflow.com/questions/6018824/…
标签: android performance audio