2014-09-28 2 views
-1

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

То, что я хочу понять, следующее.

1) Когда я открываю родной или любое другое приложение камеры,

2) Сфотографируйте с сенсорным случае вместо кнопки камеры (Эта часть того, что я хочу разработать)

Ниже код Что я пробовал для этого.

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

Но функция camera.takePicture() в Take_picture не работает. (На самом деле это не вызывает функцию jpegCallback)

private void Take_picture(){ 

    camera = Camera.open(); 


    if(camera != null) 
    { 
     camera.takePicture(null, null, jpegCallback); 

    } 


} 


PictureCallback jpegCallback = new PictureCallback() { 
    public void onPictureTaken(byte[] data, Camera camera) { 
     new SaveImageTask().execute(data); 


    } 
}; 

private class SaveImageTask extends AsyncTask<byte[], Void, Void> { 

    @Override 
    protected Void doInBackground(byte[]... data) { 
     FileOutputStream outStream = null; 

     System.out.println("66666"); 
     // Write to SD Card 
     try { 
      File sdCard = Environment.getExternalStorageDirectory(); 
      File dir = new File (sdCard.getAbsolutePath() + "/camtest"); 
      dir.mkdirs();    

      String fileName = String.format("%d.jpg", System.currentTimeMillis()); 
      File outFile = new File(dir, fileName); 

      outStream = new FileOutputStream(outFile); 
      outStream.write(data[0]); 
      outStream.flush(); 
      outStream.close(); 

      //Log.d(TAG, "onPictureTaken - wrote bytes: " + data.length + " to " + outFile.getAbsolutePath()); 

      //refreshGallery(outFile); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
     } 
     return null; 
    } 

} 

Я не мог получить никакой информации Как я контролировать родное приложение камеры для Сфотографируйте мгновенно.

Пожалуйста, помогите.

ответ

0

Как я могу управлять собственным приложением камеры для съемки моментально.

Вы не можете. Вы можете создать собственное приложение для камеры, которое будет делать снимки, но вы хотите. Авторы других приложений для камер могут использовать свои приложения для камер, но они не должны предоставлять какие-либо средства другим разработчикам, чтобы диктовать, когда и как делаются снимки.

Но функция camera.takePicture() в Take_picture не работает

Ваше приложение должно быть сбой, так как вы не должны иметь действительный Camera объект. Одновременно может использоваться только одно приложение.

+0

Тогда, возможно ли получить экземпляр открытой камеры вместо camera.open() ?? – user2688423

+0

@ user2688423: Нет, потому что это в другом приложении, а не у вас. – CommonsWare

Смежные вопросы