Selamlar, aşağıdaki gibi flaşı el feneri olarak kullanabiliyorum. Fakat şöyle bir sıkıntım var flaşın belli sürede yanıp sönmesini nasıl sağlayabilirim ?

Camera c = Camera.open();
Parameters p = c.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);    
c.startPreview();

acaba bir Thread içinde Thread.sleep() mi kullanmam gerekli. Ya da başka bir yolu var mı ?

soruldu: 18 Tem '12, 05:58

oksuz's gravatar image

oksuz
126348
cevap kabul oranı: 33%

değiştirildi: 19 Tem '12, 05:29

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

ben bu kodu yapıştırdım ama çalışmıyo kodun tamamını atarmsısınız

(10 Ağu '12, 02:28) alimenekse alimenekse's gravatar image

Eğer o anki durumu belirli bir süre korumak istiyorsanız thread sleep teoride çalışır gibi görünse dahi durum öyle olmuyor.

Normal kod akışında yak-beklet-söndür yapısını kullanmak yerine AsyncTask kullanarak ön planda yakarken arkaplanda bekletme işlemini yapabilirsiniz.

Basitçe asyncTask yapısı şöyledir.

1- onPreExecute : Asıl yapmak istediğiniz iş arkaplanda yapılırken, kullanıcıya ne göstereceğinizi burada belirlersiniz. ( flaşınıza yan komutunu burada vereceksiniz )

2- doInBackground : Arkaplanda yapılmak istenen işlerin yapıldığı metoddur. Burada thread.sleep(); kullanabilirsiniz. sleep metodu tamamlanmadan doInBackBackground metodu sonlanmaz.

3- onPostExecute : Arkaplanda çalışan metodlar çalışmasını tamamladığında tetiklenir. Bunun dışında hiçbir zaman koşulamazlar. Bu sayede arkaplanda çalışan işin bittiğini garanti altına alırsınız. Bu metod içinde de flaşı söndürecek kodları eklerseniz sorununuz çözülecektir.

AsyncTask Türkçe anlatım için link

AsyncTask developer.android dökümanları için link

permanent link

cevaplandı: 18 Tem '12, 08:43

ersinyildiz's gravatar image

ersinyildiz
2.8k31438
cevap kabul oranı: 29%

Selamlar, AsyncTask yapısı işlemi bir kez tekrarlamak ve aynı anda kullanıcıya bilgi göndermek için ideal fakat ben aynı işlemin sürekli tekrarlanmasını istiyorum. Şu an yaptığım denemede c.startPreview(); metodunu devreden çıkartıp p.setFlashMode(Parameters.FLASH_MODE_TORCH);
p.setFlashMode(Parameters.FLASH_MODE_OFF); yaparak bir thread icinde hizli bir sekilde flash'i yakıp sondurebiliyorum. Fakat onPause ve onStop metotlarımda camera.relase(); oldugundan p.setFlashMode'dan once bu metotlar işlerse hata veriyor. Simdi bunun onune gecmeye calisiyorum buda asynctaskla mumkun gibi.

(18 Tem '12, 14:35) oksuz oksuz's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×817

Soruldu: 18 Tem '12, 05:58

Görüntüleme: 1,740 kez

Son güncelleme: 10 Ağu '12, 06:42

powered by BitNami OSQA