Tarayıcı üzerinden kamera erişimi


150

Mobil cihazlar için bir HTML5 web sitesi oluşturuyoruz ve yerel bir uygulama olmadan web tarayıcısından kamera erişimine ihtiyacımız var. İOS'ta bu işi yapmakta sorun yaşıyoruz. Bunun için bir çözümün farkında olan var mı?

Yanıtlar:


124

Bunu deneyebilirsiniz:

<input type="file" capture="camera" accept="image/*" id="cameraInput" name="cameraInput">

ancak çalışması için iOS 6+ olması gerekir . Bu, resim çekmeyi veya albümünüzden bir resim yüklemeyi seçmeniz için size güzel bir diyalog verecektir.

screenhot

Bir örnek burada bulunabilir: PhoneGap olmadan kamera / resim verilerini yakalama


5
Bu Android'de de harika!
Matt

1
Bir sunucuya yüklemek için güzel bir demo. Resmi cihazdaki yerel bir albüme kaydetmek için bunu nasıl değiştirebilir?
K.Niemczyk

2
Tek sorun, en azından iphone'da (ios 7.0.4) en azından her zaman adlı geçici bir görüntü oluşturmasıdır 'image.jpg'. Aynı formda birkaç resim yüklerseniz, onları yeniden adlandırmak için bir şey yapmadığınız sürece aynı ad nedeniyle birbirlerinin üzerine yazarlar, dikkatli olun!
Aleation

@ K.Niemczyk: Bunu hiç anladın mı? eğer öyleyse çözümle ilgilenirim. Bunu buldum: dev.w3.org/2009/dap/camera (yerel depolama için örnek 6-7'ye bakın)
lamarant

1
Parlak. İşte bu kodu cihazlarında test çalışması yapmak isteyen herkes için bir keman .
Simon East

33

2015 itibariyle şimdi çalışıyor .

<input type="file">

Bu, kullanıcıdan herhangi bir dosyanın yüklenmesini ister. İOS 8.x'te bu bir kamera videosu, kamera fotoğrafı veya Fotoğraf Arşivi'nden bir fotoğraf / video olabilir.

iOS / iPhone fotoğraf / video / dosya yükleme

<input type="file" accept="image/*">

Bu yukarıdaki gibi, fakat yükledikleriniz sınırlar fotoğrafları sadece kamera veya kütüphane, hiçbir videoları.


1
Kullanıcıların fotoğraf kitaplığından dosya seçmesini kısıtlamanın bir yolu var mı? Sadece yeni çekilmiş bir görüntüyü kabul etmek istiyorum.
Daryl

@Daryl iOS'ta değil. Android capturetam da bunu yapan özelliği destekler . Bkz . HTML Media Capture için Doğru Sözdizimi
Octavian Naicu

Kullanıcı üzerinde bir süre sonra bu Fotoğraf veya Video ve Fotoğraf Kütüphanesi Al açılır penceresini kapatır mıyım.
Pritish

video işlevleri artık yok gibi görünüyor?
Martian2049


10

Bence bu işe yarıyor. Video veya ses kaydı;

<input type="file" accept="video/*;capture=camcorder">
<input type="file" accept="audio/*;capture=microphone">

veya (yeni yöntem)

<device type="media" onchange="update(this.data)"></device>
<video autoplay></video>
<script>
  function update(stream) {
    document.querySelector('video').src = stream.url;
  }
</script>

Değilse, muhtemelen ios6 üzerinde çalışacak, daha fazla ayrıntıyı kullanıcı medyasında bulabilirsiniz.


4

Picup uygulaması bir HTML5 sayfasından fotoğraf çekmek ve sunucunuza yüklemek için kullanılan bir yöntemdir. Sunucuda bazı ekstra programlama gerektirir, ancak PhoneGap dışında başka bir yol bulamadım.


5
İOS8'de artık Picup'a ihtiyacınız yok. HTML5, <input type = "file" accept = "image / *" id = "capture" capture = "kamera"> 'yı destekler. Safari ve Chrome'da doğrulandı.
rakensi

1

Bu soru zaten birkaç yaşında, ancak o zaman kameraya doğrudan erişmek, bir önizleme görüntülemek ve anlık görüntüler yakalamak (örneğin QR kod taraması için) gibi bazı ek olasılıklar gelişti.

Bu Google Developers makalesi, "(her yerde çalış" (masaüstü tarayıcılarda bile) ile "yalnızca modern, up-to" arasında çalışan bir web uygulamasına resim / kamera verilerinin nasıl aktarılacağına dair tüm yöntemlerin (?) Ayrıntılı bir açıklamasını sunar. - kameralı mobil cihazları güncelleyin ". Birçok yararlı ipucu ile birlikte.

Açıklanan yöntemler:

  • URL isteyin
  • Dosya girişi (buradaki diğer yazıların çoğu tarafından kapsanmaktadır)
  • Sürükle ve bırak (masaüstü tarayıcılar için yararlıdır)
  • Panodan yapıştır
  • Kameraya etkileşimli olarak erişin (uygulamanın QR kodları gibi "gördüğü" hakkında anında geri bildirimde bulunması gerekiyorsa)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.