2013-05-31 38 views
9

Tôi có một ứng dụng Android có camera được định cấu hình để gửi bản xem trước của nó tới TextureView. Trong phương pháp onSurfaceTextureUpdated của SurfaceTextureListener của tôi, tôi kéo ra khung xem trước như một bitmap sử dụng:Android TextureView.getBitmap() rất chậm

textureView.getBitmap(existingBitmap); 

Nó hoạt động tốt, nhưng phải mất một thời gian rất dài (khoảng 200-250 ms cho một hình ảnh 720x1280). Có vẻ như việc này sẽ nhanh hơn nhiều. Bất kỳ suy nghĩ về cách tôi có thể cải thiện hiệu suất của hoạt động này?

+0

Bạn có tìm thấy giải pháp cho điều này không? Tôi đang ở trong tình huống chính xác như bạn. –

+0

Chưa. Bạn có thể phải thiết lập một bối cảnh opengl và đọc nó từ một kết cấu, nhưng tôi đã không điều tra được nêu ra. Hãy cho tôi biết nếu bạn có thể tìm ra điều gì đó. – ajselvig

+0

@ajselvig Bạn có thể đọc nó từ kết cấu không. tôi không thể tìm được cách để làm như vậy. –

Trả lời

-1

Sử dụng lệnh này để xem trước tạo ra một bitmap mới từ bản xem trước, đây là những gì đang thực hiện ứng dụng quá lâu. Đề nghị của tôi sẽ được thực hiện thao tác này trong một thread nền giải thích trong liên kết này:

http://developer.android.com/reference/android/os/AsyncTask.html

Nó cũng sẽ cho phép bạn ngăn xếp các hoạt động đòi hỏi hoạt động này được hoàn thành đầu tiên trong hàm onPostExecute.

Điều này sẽ cho phép chuỗi giao diện người dùng chính hoạt động và đáp ứng với bất kỳ điều gì khác mà người dùng có thể cần thực hiện trong thời gian này.

Đây có thể không phải là câu trả lời hoàn hảo mà bạn đang nói đến nhưng hy vọng điều đó sẽ hữu ích.

+0

xin vui lòng bạn có thể thêm một ví dụ. –