터치 이벤트가있는 카메라 앱을 사용하여 사진을 찍고 싶습니다.카메라 앱을 이용하여 사진을 촬영하는 방법
내가 알고 싶은 것은 다음과 같습니다.
1) 나는
2)이 부분은 내가 코드를 아래
가) 개발하고자하는 것입니다 대신 카메라 버튼의 터치 이벤트 (과 사진 촬영, 네이티브 또는 다른 카메라 앱을 실행하면 내가 이것을 시도해.
카메라 앱 투명성 활동 ( )을 호출하려고 시도했습니다. 해당 활동에서 터치 이벤트가 발생하면 Take_picture() 함수를 호출합니다.
그러나 Take_picture의 camera.takePicture() 함수가 작동하지 않습니다. 나는 즉시 걸릴 사진에 대한 기본 카메라 응용 프로그램을 제어하는 방법에 대한 정보를 얻을 수 없었다
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;
}
}
(실제로는 jpegCallback 함수를 호출하지 않습니다).
도와주세요.
그런 다음 열린 카메라의 인스턴스를 camera.open() 대신 가져올 수 있습니까? – user2688423
@ user2688423 : 아니요, 이는 다른 앱의 프로세스가 아니기 때문에 발생했습니다. – CommonsWare