Ich entwickle eine einfache Morse-Code-App, die Englisch in Morse konvertiert und umgekehrt. Wenn der Benutzer einen bestimmten Buchstaben eingibt, soll die Kameralampe auf dem Gerät die Morse-Sequenz für den Buchstaben anzeigen, zum Beispiel:Wie kann man die Kamera in einer bestimmten Reihenfolge aufleuchten lassen?
A = Punktstrich mit dem Punkt, der 200ms ist und der Strich 500ms ist.
Das Problem ist, dass ich nicht sicher bin, wie genau dies zu erreichen ist. Ich habe versucht, dies mit einer for-Schleife zu lösen, aber ich kann nicht scheinen, es zu lösen. Unten ist der Code, den ich gerade versuche einzustellen - ich bin nicht sicher, ob die Verwendung einer for-Schleife die besten Methoden ist, aber ich kann nicht auf eine andere Weise denken. Hat jemand irgendwelche Vorschläge/Ideen, wenn ja, würden sie sehr geschätzt werden.
public void flashTranslation() {
char[] cArray = message.toCharArray();
for (int i = 0; i < cArray.length; i++) {
if (cArray[i] == '.') {
turnOn();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
turnOff();
camera.release();
}
}, dot);
} else {
turnOn();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
turnOff();
camera.release();
}
}, dash);
}
}
}
public void turnOn() {
if (camera != null) {
Camera.Parameters p = camera.getParameters();
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
}
}
public void turnOff() {
if (camera != null) {
Camera.Parameters p = camera.getParameters();
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
}
}
Dank für Ihre Antwort danken. Als ich nachforschte, wie ich das anstellen kann, bin ich auf Threads gestoßen, aber ich verstehe sie nicht vollständig - aber ich werde definitiv lernen, wie sie funktionieren. Ich habe nicht daran gedacht, ein Zeitintervall zwischen dem Ein- und Ausschalten des Lichts einzuplanen - das ist mir nie in den Sinn gekommen. Ich habe den Code, den du geliefert hast, mit eingeschlossen und ich denke, dass ich mit der Zeit ein Tweaking machen kann, damit ich so arbeiten kann, wie ich es möchte! Nochmals vielen Dank, eine sehr klare und prägnante Antwort. –