我使用 pjsua 库的应用程序运行良好。但是,挂断电话时总是会出现如下所示的异常。
这是在 MyApp.java 类中引发异常的代码部分,其中amr 引用 AudioMediaRecorder,am 引用 AudioMedia类。
if (ci.getState() == pjsip_inv_state.PJSIP_INV_STATE_DISCONNECTED) {
try {
if (am != null) {
if(amr != null) {
am.stopTransmit(amr);
MyApp.ep.audDevManager().getCaptureDevMedia().stopTransmit(amr);
amr.delete();
}
MyApp.ep.audDevManager().getCaptureDevMedia().stopTransmit(am);
am.stopTransmit(MyApp.ep.audDevManager().getPlaybackDevMedia());
am.delete();
}
} catch (Exception e) {
e.printStackTrace();
}
MyApp.ep.utilLogWrite(3, "MyCall", this.dump(true, ""));
}
MyApp.observer.notifyCallState(this);
}
这始终显示异常,如下所示。问题在于停止媒体传输到端口。任何人都可以建议我关闭这些课程的正确方法。
W/System.err: java.lang.Exception: Title: pjsua_conf_disconnect(id, sink.id)
W/System.err: Code: 70004
W/System.err: Description: Invalid value or argument (PJ_EINVAL)
W/System.err: Location: ../src/pjsua2/media.cpp:234
W/System.err: at org.pjsip.pjsua2.pjsua2JNI.AudioMedia_stopTransmit(Native Method)
W/System.err: at org.pjsip.pjsua2.AudioMedia.stopTransmit(AudioMedia.java:60)
W/System.err: at com.xtendsip.MyCall.onCallState(MyApp.java:166)
W/System.err: at org.pjsip.pjsua2.pjsua2JNI.SwigDirector_Call_onCallState(pjsua2JNI.java:2918)
您无需停止传输,因为它由库处理。可以查看有关如何处理呼叫断开连接的示例应用 (MyApp.java(。