2015-08-01 10 views
5

Tworzę aplikację Flashlight i używam Fragmentów. Po naciśnięciu przycisku lampka latarni opóźnia się o ponad 4 sekundy i nie wiem, co się stanie. Również, gdy I naciśniesz przycisk przełącznika innym razem, latarka się nie wyłącza Masz pomysł?Interfejs API aparatu Android (Flashlight) zbyt powolny

Chciałbym również zrobić stroboskopowe światło latarni z innym przyciskiem.

Szukam w Internecie, ale nie mogę znaleźć innej opcji, aby tę funkcję, tylko to.

to jest mój kod

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

Na jakim urządzeniu się testujesz? Czy opóźnienie występuje również w innych aplikacjach aparatu? – Saket

+0

Testuję w GALAXY S4, i pobrałem inną aplikację, a latarka jest bardzo szybka i nie opóźnia się. –

Odpowiedz

2

Jest możliwe, że drugie opóźnienie 4 jest system okuć/operacyjnego i związanych z kontrolą. To nie znaczy, że nie da się go naprawić, ale nie mogę znaleźć niczego związanego z tym tematem (niektórzy eksperci z Androidem mogą mieć tutaj lepszy pomysł).

Światło nie wyłącza się prawdopodobnie dlatego, że trzeba dodać cam.release();, jak wspomniano w this answer.

Jeśli chodzi o światło stroboskopowe, znalazłem this tutorial. Wygląda na to, że prawie dokładnie to, czego szukasz.

+1

Wiele się rozglądałem i nie mogłem znaleźć niczego związanego z powolnym uruchamianiem kamery. Mam nadzieję, że moja odpowiedź pomoże w innych sprawach. – NitrogenReaction

Powiązane problemy