2011-09-13 35 views
11

Tôi đang phát triển Dịch vụ, chạy ở chế độ nền, tải lên hình ảnh và dữ liệu thành công lên web.Cách sử dụng Máy ảnh để chụp ảnh trong nền Dịch vụ trên Android?

Bây giờ tôi muốn tải lên một hình ảnh do Máy ảnh chụp.

Có thể sử dụng máy ảnh trong dịch vụ nền mà không cần xem trước trên Android 2.2 không?

Tôi đã tìm thấy nhiều câu trả lời về độ tương phản khác nhau trên web ...

Tôi có thể làm như thế nào?

Trả lời

9

Bạn có thể chụp ảnh mà không cần xem trước với chế độ xem giả.

như:

SurfaceView view = new SurfaceView(this); 
c.setPreviewDisplay(view.getHolder()); 
c.startPreview(); 
c.takePicture(shutterCallback, rawPictureCallback, jpegPictureCallback); 
+2

Điều này không hoạt động trên tất cả các thiết bị, như đã lưu ý ở đây: http://stackoverflow.com/a/5384913/318870 –

+1

c là gì, shutterCallback và tất cả các biến..vui lòng cung cấp toàn bộ mã – jyomin

+2

Mã này không chính xác. Tôi cần thêm 'view' vào' WindowManager'. Tôi cũng cần thêm một gọi lại vào 'view.getHolder()' và sau đó trong 'surfaceCreated' đặt xem trước, bắt đầu xem trước và chụp ảnh. – Sam

1

Không thể thực hiện được nếu không có chế độ xem trước/mặt.

+0

Đúng, nhưng bạn vẫn có thể sử dụng thủ đoạn như một bản xem trước trong suốt hoặc một bản xem trước 1x1. Ngoài ra, trên một số điện thoại, bạn có thể sử dụng một mặt phẳng 'SurfaceTexture' hoặc' SurfaceView' không được hiển thị. – Sam

+0

Nó hoạt động mà không có Surfaceview trên một số thiết bị (như ghi chú của tôi 2) nhưng không hoạt động trên mọi thiết bị. Vì vậy, đó là phải sử dụng SurfaceView. – TheOnlyAnil

Các vấn đề liên quan