2013-06-24 3 views
0

Я написал простое приложение, в котором пользователь может:Отключить звук затвора камеры в устройстве Android

  • нажать кнопку, чтобы открыть приложение камеры
  • снимать с применением камеры

Есть ли способ отключить звук затвора камеры из моего кода? В настоящее время я держу телефон Orange Nivo с версией Android 4.1.2.

secion моего кода:

  public void onClick(View v) { 
       try { 
        f = createImageFile(); 
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
        cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 
        startActivityForResult(cameraIntent, CAMERA_REQUEST); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 



      } 
     }); 
    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { 

      Bitmap photo = BitmapFactory.decodeFile(f.getAbsolutePath()); 
      Bitmap newphoto = Bitmap.createScaledBitmap(photo, 200, 200, false);  
      imageView.setImageBitmap(newphoto); 

Я был бы признателен за любые предложения о том, как добиться этого эффекта. Я знаю, что в Android-магазине есть приложения, которые снимают без звука затвора, поэтому я предполагаю, что для этого нужно сделать способ, не укоряя телефон.

ответ

1

Простой ответ: вы не можете!

Причина в том, что против закона делать снимок без звука, создаваемого затвором, это касается проблем конфиденциальности. Кроме того, как вы заметили, вы не сможете сделать снимок, даже если предварительный просмотр камеры не установлен правильно, но по соображениям конфиденциальности. На данный момент у вас есть четыре варианты:

  • найти способ взломать АНИ

  • Корневого телефона и отключить звук затвора

  • Напишите свой собственный код для камеры. .. но это может сильно зависеть от устройства, которое вы используете.

  • Используйте самый крутой способ, который также используется большинством (если не все) бесшумной камерой

приложений на рынке. Просто перехватите рамку предварительного просмотра через обратный вызов onPreviewFrame из вашего onClickListener, а затем сохраните его как изображение. Главный недостаток здесь заключается в том, что максимальное разрешение предварительного просмотра намного меньше, чем максимальное разрешение изображения, поэтому фотография, которую вы сделаете таким образом, будет иметь довольно низкое разрешение. Действительно, если вы прочтете комментарии к приложениям с немой камерой на рынке, вы увидите, что многие люди жалуются на то, что разрешение изображений не так велико. Вот почему: они используют трюк, который я превзошел вас выше.

В заключение, нет простого способа добиться желаемого!