在定时间隔播放声音的最佳方式?

时间:2010-08-27 20:21:37

标签: android audio timer

我有一个Android应用程序需要按照定时间隔播放声音资源,比如每120秒播放一次。

我知道如何访问声音资源并播放它们,但是时间计时器部分我不确定。什么是最好的方法?

1 个答案:

答案 0 :(得分:0)

我最后放弃Timer方法并在android-labs找到一个例子后使用了Handler

因此,我没有在我的活动Timer中生成TimerTaskonCreate,而是将其声明为私有Handler,内嵌Runnable

private Handler _playRandomSoundHandler = new Handler();
private Runnable _playRandomSoundTask = new Runnable() {
    public void run() {
        SoundManager.playRandom();
        _playRandomSoundHandler.postDelayed(_playRandomSoundTask, Prefs.getDelayInMilliseconds(getApplicationContext()));
    }
};

另外,我必须在我的活动onResumeonPause中添加代码:

@Override
protected void onResume() {
    super.onResume();
    _playRandomSoundHandler.postDelayed(_playRandomSoundTask, Prefs.getDelayInMilliseconds(this));
}

@Override
protected void onPause() {
    super.onPause();
    _playRandomSoundHandler.removeCallbacks(_playRandomSoundTask);
    SoundManager.stop();
}

这种方法看起来效果很好。