Android 写一个变量不同ToneGenerator蜂鸣器播放声音频率不同的方法
时间: 2024-01-26 20:01:47 浏览: 149
在 Android 中,可以使用 ToneGenerator 类来控制蜂鸣器发声。首先需要定义一个变量来存储要播放的频率,然后使用 `startTone()` 方法来控制蜂鸣器发声。具体的代码示例如下:
```java
int freq = 1000; // 定义要播放的频率
ToneGenerator toneGen = new ToneGenerator(AudioManager.STREAM_ALARM, 100); // 创建 ToneGenerator 实例
toneGen.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 500); // 先播放一个默认的声音
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
toneGen.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 0); // 停止默认声音
toneGen.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 1000, freq); // 控制蜂鸣器发出指定频率的声音
freq += 100; // 每次增加 100,实现频率逐渐升高的效果
}
}, 500);
```
在上述代码中,我们首先创建 ToneGenerator 实例,并使用 `startTone()` 方法播放一个默认的声音。然后通过 `Handler` 来控制在 500ms 后停止默认声音,并控制蜂鸣器发出指定频率的声音。变量 `freq` 初始值为 1000,每次增加 100,实现了频率逐渐升高的效果。
如果要实现不同 ToneGenerator 播放不同频率的声音,可以创建多个 ToneGenerator 实例,并分别控制对应的 ToneGenerator 发声即可。另外需要注意的是,ToneGenerator 中的频率参数是 int 类型,并且需要在一定范围内,否则可能无法正常播放。
阅读全文