我想在CountDownTimer到期时播放声音。我似乎无法让它像我想的那样工作。我已经使用ToneGenerator查看了一些示例代码,但它不能正常工作,因为我是android和java的新手,并不确定如何让它更好地工作。
以下是我所拥有的: - 倒数计时器工作。当我点击它时它会启动和停止,当我再次点击它时它会恢复。这里的一切都很完美。
这就是我想要的: - 在CountDownTimer的onFinish()中,我想在2800Hz左右产生一个2或2.5秒的音调。 - 在我开始工作之后,我想把它变成2800Hz和2000Hz的交替音调,每次50ms,持续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);
}
答案 0 :(得分: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();
}