0

我希望在 CountDownTimer 到期时播放声音。我似乎无法让它按我的意愿工作。我查看了一些使用 ToneGenerator 的示例代码,但它没有像我期望的那样工作,因为我是 android 和 java 的新手,不太确定如何让它更好地工作。

这是我所拥有的: - 倒数计时器有效。当我单击它时它会启动和停止,当我再次单击它时它会恢复。这里的一切都很完美。

  • 我已经设法从我的设备中播放了一些声音,但由于某种原因它实际上会重复。不知道为什么。

这就是我想要的: - CountDownTimer 的 onFinish(),我想在 2 或 2.5 秒的时间段内生成大约 2800Hz 的音调。- 在我让它工作之后,我想尝试让它以 2800Hz 和 2000Hz 的频率交替变化,每次 50 毫秒或其他时间,持续 2 到 2.5 秒。

** 编辑 **

public void soundBuzzer() {
    ToneGenerator toneGen;
    int type1, type2;
    toneGen = new ToneGenerator(AudioManager.STREAM_MUSIC, 100);

    type1 = ToneGenerator.TONE_DTMF_6;
    type2 = ToneGenerator.TONE_DTMF_8;

    toneGen.startTone(type2, 2000);
}
4

1 回答 1

0

当您按住一个数字时,ToneGenerator 将产生一种听起来像电话铃声的声音。我无法使用该课程让蜂鸣器发声并使其听起来不错。结果,我最终播放了 MP3 声音。

这是代码:

// function to generate a tone for 3 seconds
public void soundBuzzer( boolean shortBuzzer ) {
    MediaPlayer mp;

    if( !shortBuzzer )
        mp = MediaPlayer.create(appContext, R.raw.buzzer_2s);
    else
        mp = MediaPlayer.create(appContext, R.raw.buzzer_short);

    mp.start();

}
于 2013-01-06T21:37:57.553 回答