2015-08-01 3 views
5

Ich mache eine Taschenlampe app, und ich benutze Fragmente. Wenn ich den Knopf drücke, verzögert sich das Laternenlicht um mehr als 4 Sekunden, und ich weiß nicht, was passiert. Auch wenn ich den Schalter ein anderes Mal drücken, schaltet sich die Taschenlampe nicht aus Irgendeine Idee?Android Kamera (Taschenlampe) API zu langsam

Auch ich möchte eine stroboskopische Laterne Licht mit einem anderen Knopf machen.

Ich suche im Internet, aber ich finde keine andere Option, um diese Funktion zu machen, nur das.

dies ist mein Code

import android.hardware.Camera; 
import android.hardware.Camera.Parameters; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Switch; 

public class HerramientasFragment extends Fragment { 

    private Camera cam; 
    private Switch linterna; 

    public HerramientasFragment() { 
     // Required empty public constructor 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     cam = Camera.open(); 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
     View masterView = inflater.inflate(R.layout.fragment_herramientas, container, false); 
     linterna = (Switch) masterView.findViewById(R.id.switch_linterna); 
     linterna.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Switch liternaSwitch = (Switch) v; 

      Parameters p; 

      if (liternaSwitch.isChecked()) { 
       p = cam.getParameters(); 
       p.setFlashMode(Parameters.FLASH_MODE_TORCH); 
       cam.setParameters(p); 
       cam.startPreview(); 
      } else { 
       p = cam.getParameters(); 
       p.setFlashMode(Parameters.FLASH_MODE_OFF); 
       cam.setParameters(p); 
       cam.stopPreview(); 
      } 

     } 
    }); 

    return masterView; 
} 

} 
+1

An welchem ​​Gerät testen Sie? Tritt die Verzögerung auch bei anderen Kamera-Apps auf? – Saket

+0

Ich bin in einem GALAXY S4 testen, und ich habe eine andere App heruntergeladen und die Taschenlampe ist sehr schnell, nicht zu verzögern –

Antwort

2

Es ist möglich, dass die 4 Sekunden Verzögerung Hardware-/Betriebssystem verwendet ist und aus Ihrer Kontrolle. Das heißt nicht, dass es nicht repariert werden kann, aber ich kann nichts damit in Verbindung bringen (Einige Android-Experten könnten hier eine bessere Idee haben).

Das Licht, das nicht ausschaltet, ist vermutlich, weil Sie cam.release(); hinzufügen müssen, wie in this answer erwähnt.

Wie für eine stroboskopische Licht fand ich this tutorial. Es scheint fast genau das zu sein, wonach Sie suchen.

+1

Ich habe viel gesucht, und ich konnte nichts im Zusammenhang mit langsamer Kamera Start finden. Ich hoffe, dass meine Antwort bei Ihren anderen Problemen hilft. – NitrogenReaction

Verwandte Themen