我使用pjsip库创建了一个音调生成器功能。
import org.pjsip.pjsua2.ToneDigit;
import org.pjsip.pjsua2.ToneDigitMapDigit;
import org.pjsip.pjsua2.ToneDigitMapVector;
import org.pjsip.pjsua2.ToneDigitVector;
import org.pjsip.pjsua2.ToneGenerator;
private static ToneGenerator toneGenerator;
private boolean initToneGenerator() {
try {
toneGenerator = new ToneGenerator();
toneGenerator.createToneGenerator();
ToneDigitMapVector digitMap = new ToneDigitMapVector();
ToneDigitMapDigit digit = new ToneDigitMapDigit();
digit.setDigit("0");
digit.setFreq1(941);
digit.setFreq2(1336);
digitMap.add(digit);
digit.setDigit("1");
digit.setFreq1(697);
digit.setFreq2(1209);
digitMap.add(digit);
digit.setDigit("2");
digit.setFreq1(697);
digit.setFreq2(1336);
digitMap.add(digit);
digit.setDigit("3");
digit.setFreq1(697);
digit.setFreq2(1477);
digitMap.add(digit);
digit.setDigit("4");
digit.setFreq1(770);
digit.setFreq2(1209);
digitMap.add(digit);
digit.setDigit("5");
digit.setFreq1(770);
digit.setFreq2(1336);
digitMap.add(digit);
digit.setDigit("6");
digit.setFreq1(770);
digit.setFreq2(1477);
digitMap.add(digit);
digit.setDigit("7");
digit.setFreq1(852);
digit.setFreq2(1209);
digitMap.add(digit);
digit.setDigit("8");
digit.setFreq1(852);
digit.setFreq2(1336);
digitMap.add(digit);
digit.setDigit("9");
digit.setFreq1(852);
digit.setFreq2(1477);
digitMap.add(digit);
digit.setDigit("*");
digit.setFreq1(941);
digit.setFreq2(1209);
digitMap.add(digit);
digit.setDigit("#");
digit.setFreq1(941);
digit.setFreq2(1477);
digitMap.add(digit);
digit.setDigit("A");
digit.setFreq1(697);
digit.setFreq2(1633);
digitMap.add(digit);
digit.setDigit("B");
digit.setFreq1(770);
digit.setFreq2(1633);
digitMap.add(digit);
digit.setDigit("C");
digit.setFreq1(852);
digit.setFreq2(1633);
digitMap.add(digit);
digit.setDigit("D");
digit.setFreq1(941);
digit.setFreq2(1633);
digitMap.add(digit);
toneGenerator.setDigitMap(digitMap);
// toneDigitVector = new ToneDigitVector();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
dtmf音调工作正常,一切都好。问题在于,当我开始一个电话(我的initToneGenerator()
被调用)并且应用程序堆叠一点时,它会自动关闭,然后它会带回调用屏幕。
我没有收到任何错误,只是重新启动活动的信号。