2013-07-22 25 views
5

Tôi chỉ mới bắt đầu phát triển Android và viết một ứng dụng máy ảnh đơn giản sử dụng hướng dẫn này: http://developer.android.com/guide/topics/media/camera.html#custom-cameraCamera.lock, mở khóa() được quản lý tự động cho bạn kể từ Android 4.0?

có tôi đọc: "Lưu ý: Bắt đầu với Android 4.0 (cấp API 14), Camera.lock() và Camera.unlock() cuộc gọi được quản lý tự động cho bạn. "

nhưng điều này có nghĩa là gì? ứng dụng máy ảnh của tôi hỗ trợ Android 16 (4.1.2) và 17 (4.2.2) nhưng nếu tôi hủy khóa và mở khóa cuộc gọi, tôi sẽ gặp lỗi từ mediarecorder (-19). vậy làm thế nào để cho android xử lý nó? hoặc điều này có nghĩa là "được quản lý tự động"?

+0

Câu hỏi hay. Tôi phải đối mặt với cùng một vấn đề và ở cuối trái khóa/mở khóa cuộc gọi, gây ra tôi không thể làm cho nó hoạt động mà không có lỗi này. Tuy nhiên nó có thể liên quan với SDK tối thiểu của tôi là API 15 (4.0.3), mặc dù đã kiểm tra (và nhận được lỗi -19) trên 4.2.2 .. – Ewoks

Trả lời

1

Là android documentation stateslock() được gọi tự động cho bạn trong MediaRecorder.start(). Tôi nghĩ rằng bạn không thể xóa cuộc gọi mở khóa() vì khi phương thức start() gọi phương thức lock() trên máy ảnh của bạn, được khóa theo mặc định, nó tìm thấy mề đay máy ảnh và do đó nó tăng RuntimeException.

Vì cấp API 14, máy ảnh sẽ tự động bị khóa cho các ứng dụng trong bắt đầu(). Ứng dụng có thể sử dụng máy ảnh (ví dụ: thu phóng) sau khi ghi hình bắt đầu. Không cần phải gọi điều này sau khi bắt đầu ghi hoặc dừng.