2012-04-30 42 views
12

Ứng dụng Máy quay video của tôi không ghi ở chế độ ngang, nhưng máy ảnh mặt trước sẽ xem trước hình ảnh thông thường, nhưng bản ghi thực tế được nhân đôi (lật hoặc đảo ngược) trên trục.Làm thế nào để giữ cho android không đảo ngược hình ảnh từ camera mặt trước?

Mọi thứ hoạt động tốt trên máy ảnh phía sau thông thường.

Ai có thể gợi ý cho tôi cách tránh nó không? Bất kỳ đề xuất hoặc mã nguồn nào sẽ giúp ích rất nhiều. Cảm ơn bạn.

+0

Bạn đã nhìn thấy http://stackoverflow.com/questions/9754346/prevent-flipping-of-the-android-front-facing-camera/17569915 # 17569915 Điều này phù hợp với API> = 14. – Steve

Trả lời

10

Tin xấu: Phản chiếu này được mã hóa cứng vào dịch vụ máy ảnh và không thể tắt.

Tin tốt: nếu bạn đang ở trên API gần đây (cấp API> = 14), bạn có thể dễ dàng sử dụng TextureView để phản chiếu hình ảnh xem trước quay lại bản gốc. Đi theo số TextureView Example qua Tài liệu Android, sau đó sử dụng setTransform để đặt biến đổi phản chiếu. Thao tác này sẽ hoàn nguyên hình ảnh xem trước về bản gốc không được nhân đôi.

Lưu ý rằng phép biến đổi gương giống với phép biến đổi tỷ lệ với thang đo -1 trên trục X.

Nếu bạn đang sử dụng phiên bản API cũ hơn, bạn có thể thực hiện tương tự với SurfaceView (sử dụng setScaleX, cấp API> = 11).

+0

bất kỳ ý tưởng nào cho api trước 11? – njzk2

+0

@ Paul-Jan bạn có thể cho tôi một mã ví dụ với setTransform để lật bản xem trước – Aswathy

+2

'setScaleX (-1)' dẫn đến màu đen 'SurfaceView' (API 21). – TWiStErRob

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