Java Multithreading für IVRS mit GSM-Modem rxtx (Abspielen der Sprachdatei, damit der Event-Listener nicht mehr funktioniert)

10

Ich habe ein Programm implementiert, um Anruf mit GSM-Modem zu empfangen. Nach Erkennung "RING" Anruf wird beantwortet ein Audio-Clip wird durch Aufruf einer Funktion von innerhalb DATA_AVAILABLE EVENT HANDLER gespielt. Aber der Event-Handler stoppt Danach wird der Audio-Event beendet. Event-Handler zeigt kein Datenempfangs-Event mehr an

.Warum funktioniert der Event-Listener nicht mehr? Wenn ich die Audio-Wiedergabe aus dem Event-Handler falsch mache, habe ich darüber nachgedacht, eine Variable true oder false aus dem data_received Event-Handler zu setzen und einen benutzerdefinierten Event-Handler zu erstellen zu dieser Variable wechseln, um die Wiedergabe von Audio zu machen, können beide gleichzeitig gleichzeitig funktionieren?

So erstellen Sie eine Multi-Threading-Lösung Damit Serial I / O nicht unterbrochen wird und Audiowiedergabe und Audio Sampling synchron durchgeführt werden können, um dtmf-Töne zu erkennen. Gibt es eine Möglichkeit, dass serielle Port-Ereignisse ohne Interrupt ununterbrochen gehört werden können und eine Funktion für Audio-Sampling und Audiowiedergabe zu einer bestimmten Zeit ausführen können

Call Accepted in diesem Fall von Switch und Thread wird innerhalb der play () Funktion

gestartet %Vor% %Vor%

Vollständiger Code

%Vor%     
Sachin Divakar 01.09.2015, 18:01
quelle

1 Antwort

0

Abgesehen davon, dass Sie eine Menge Zeit damit verbringen, Ihre Umgebung zu reproduzieren, kann ich Ihnen zwei Vorschläge geben, wie Sie das untersuchen könnten.

a) Platzieren Sie einen try-catch Throwable um den gesamten Handler - oft kann das Auslösen von Exceptions Event-Dispatcher brechen

B) Drucken Sie eine Debug-Anweisung aus, wenn Sie Ihren Event-Handler betreten und verlassen und sicherstellen, dass sie gepaart sind und dass Sie nach Ihrer letzten Eingabe einen Exit erhalten - ein Thread-Locking stoppt manchmal zukünftige Ereignisse.

Übrigens, Sie haben eine leere Catch-Anweisung an einem Ort - die erschrecken mich, weil sie oft Probleme auf eine Weise verschleiern, die Tage Ihrer Zeit verschwenden kann. Wenn du absolut weißt, dass du stillschweigend eine Ausnahme essen willst und du erwartest, dass diese Ausnahme genug auftritt, dass deine Logs verschmutzen würden, um sie zu protokollieren, dann sag bitte einen Kommentar.

    
Bill K 01.09.2015 20:11
quelle

Tags und Links