我跪下来想知道我的音频发生器何时停止播放。
我想播放 dtmf 音调 50 毫秒,然后等待 50 毫秒播放下一个音调。 我想使用这个代码。
private void playtones() {
new Thread(new Runnable() {
public void run() {
for(int i=0 ; i<=19 ; i++){
dtmftone.startTone(savetone.get(i) , 50);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
).start();
}
sleep 在提示音停止播放之前开始。 如何检查提示音是否已停止播放? 或者有更好的方法来做到这一点吗?
感谢您的帮助。
最佳答案
您应该使用方法wait(long millis) ToneGenerator 而不是 Thread.sleep()。
请注意,该方法不会等待声音停止,因此您必须考虑蜂鸣声的持续时间:
int BEEP_DURATION = 50;
int WAITING_DURATION = 50;
...
for (int i = 0; i <= 19; i++) {
dtmftone.startTone(savetone.get(i), BEEP_DURATION);
synchronized(dtmftone) {
dtmftone.wait(BEEP_DURATION + WAITING_DURATION);
}
...
我不确定您是否要在两次蜂鸣声之间等待 50 毫秒。如果不这样做,只需删除“+ WAITING_DURATION”
关于android - 如何知道音调发生器何时停止播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14753764/