2012-12-19 12 views
11

Tôi hiện đang phát triển ứng dụng bằng cách sử dụng camera cho iphone trong HTML5 vớiChỉ cho phép truy cập vào thiết bị camera trong HTML5

<input type="file" accept="capture=camera"> 

Vấn đề là tôi có một danh sách nhỏ mà cho tôi lựa chọn giữa thư viện của tôi và máy ảnh của tôi.

enter image description here

Ý tưởng của tôi là phải có hai nút, một cho thư viện và một khác cho máy ảnh.

Tôi biết cách chỉ cung cấp thư viện chứ không phải cho máy ảnh.

Câu hỏi: Có cách nào để tách riêng hai loại không?

Trả lời

0

Tôi cũng gặp vấn đề này, tôi không gặp một giải pháp nào, tôi chỉ tìm thấy các nguồn không chính thức cho biết điều này là không thể. Tất cả những gì bạn có thể làm là yêu cầu video/* hoặc image/* thông qua thuộc tính accept.

+0

Vâng, điều này thực sự lạ. Tại sao không trao cơ hội cho nhà phát triển để chỉ sử dụng máy ảnh. Tôi biết về thuộc tính, cảm ơn lần nữa vì đã nhắc tôi. Quá tệ đối với chúng tôi:/ – Simon

+1

Trong hầu hết các trường hợp, ai đó ở Apple đã suy nghĩ kỹ về điều này và quyết định không cho phép điều này. Có thể bởi vì người dùng có thể khó chịu nếu anh/cô ấy không thể chọn từ thư viện sau khi anh ấy/cô ấy chỉ chụp một bức ảnh để tải lên trên trang web bằng ứng dụng máy ảnh gốc. Ngoài ra không có thực sự là một nhu cầu để ngăn chặn việc sử dụng các thư viện, là có? – jimpic

+0

Vâng, tôi chỉ muốn thực hiện một bước để chụp ảnh và không nhấn một nút và một ảnh khác để chụp ảnh, vì vậy, thời điểm này không thực sự quan trọng nhưng tôi đoán tôi đã bỏ qua một bước :) Cảm ơn bạn một lần nữa vì thông tin :) – Simon

-3

Viết takePhoto phương pháp sau đây Acton:

- (IBAction)takePhoto:(UIButton *)sender { 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.allowsEditing = YES; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    [self presentViewController:picker animated:YES completion:NULL]; 
} 

Cuối cùng, chúng tôi cũng làm như vậy đối với phương pháp hành động selectPhoto, nhưng thay đổi sourceType để UIImagePickerControllerSourceTypePhotoLibrary.

- (IBAction)selectPhoto:(UIButton *)sender { 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.allowsEditing = YES; 
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    [self presentViewController:picker animated:YES completion:NULL]; 
} 

Thực hiện phương pháp Đại biểu UIImagePickerController

Khi người dùng có một bức ảnh với máy ảnh và thay đổi kích thước hình ảnh (ảnh thay đổi kích thước được phép kể từ khi chúng tôi đã nói allowsEditing = YES khi chúng tôi tạo ra bảng chọn hình ảnh). Nó là một NSDictionary có chứa, trong số những thứ khác, hình ảnh ban đầu và hình ảnh đã chỉnh sửa (có thể truy cập thông qua thẻ UIImagePickerControllerEditedImage).

(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 
    self.imageView.image = chosenImage; 
    [picker dismissViewControllerAnimated:YES completion:NULL]; 

} 
+0

chúng tôi đang nói về HTML5, vì vậy câu trả lời này không chính xác – MeV

1

Unfortunaly không thể:/

Extract từ HTML Media Capture - Security and privacy considerations:

Bên cạnh đó, việc thực hiện User Agent được thông báo để cung cấp một dấu hiệu cho người dùng khi một thiết bị đầu vào được kích hoạt và làm cho nó có thể cho người dùng chấm dứt việc chụp như vậy. Tương tự như vậy, các User Agent được thông báo để cung cấp điều khiển người dùng, chẳng hạn như để cho phép người dùng:

  • chọn thiết bị chụp phương tiện truyền thông chính xác để được sử dụng nếu có tồn tại
    nhiều thiết bị cùng loại (ví dụ camera mặt trước ở
    ngoài máy ảnh chính).

  • tắt tính năng chụp âm thanh khi ở chế độ chụp
    .

0

Không thể trong iOS6 đến 10. Nó không hoạt động trên Android 3.0+.

Thuộc tính capture, được giới thiệu bởi HTML Media Capture, sẽ buộc iOS chuyển thẳng đến ứng dụng cam nhưng không được hỗ trợ.

Từ the spec:

Thuộc tính chụp là một thuộc tính boolean rằng, nếu được chỉ định, chỉ ra rằng việc bắt giữ phương tiện truyền thông trực tiếp từ môi trường của thiết bị ... được ưa thích.

PS: Mã của bạn là hơi không chính xác, bạn nên sử dụng <input accept="video/*,image/*" capture > tới:

  1. chụp cả video và hình ảnh
  2. nhảy trực tiếp đến cam (khi được hỗ trợ)

Xem Correct HTML Media Capture Syntax để biết thêm chi tiết.