ブラウザ経由のカメラアクセス


150

私たちはモバイル用のHTML5 Webサイトを作成しており、ネイティブアプリではなく、Webブラウザーを介してカメラにアクセスする必要があります。iOSでこれを機能させるのに問題があります。誰かがこれの解決策を知っていますか?

回答:


124

あなたはこれを試すことができます:

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

ただし、機能するにはiOS 6以降である必要があります。これにより、写真を撮るか、アルバムから写真をアップロードするかを選択するための素晴らしいダイアログが表示されます。

スクリーンホット

例はここにあります: PhoneGapを使用しないカメラ/画像データのキャプチャ


5
これはAndroidでもすごい!
Matt

1
サーバーにアップロードするための素晴らしいデモ。これを変更して画像をデバイスのローカルアルバムに保存する方法を知っている人はいますか?
K.Niemczyk 2013年

2
唯一の問題は、少なくともiphone(ios 7.0.4)では、少なくともalwaysという名前の一時的なイメージを作成するとき'image.jpg'です。したがって、同じフォームでいくつかの画像をアップロードすると、名前を変更するための操作を行わない限り、同じ名前のために画像が互いに上書きされますので、注意してください。
アラートは2014年

@ K.Niemczyk:あなたはそれを理解したことがありますか?もしそうなら、私は解決策に興味があります。私はこれを見つけました:dev.w3.org/2009/dap/camera(ローカルストレージについては例6-7を参照してください)
lamarant 14

1
鮮やかさ。 このコードをデバイスでテスト実行したい人のためのフィドルです。
Simon East

33

2015年の時点では、機能しています。

<input type="file">

これにより、ユーザーにファイルのアップロードを要求します。iOS 8.xでは、これはカメラビデオ、カメラ写真、またはフォトライブラリの写真/ビデオです。

iOS / iPhone写真/ビデオ/ファイルのアップロード

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

これは上記と同じですが、アップロードはカメラまたはライブラリからの写真のみに制限され、ビデオは制限されません。


1
ユーザーがフォトライブラリからファイルを選択できないようにする方法はありますか?新しく撮った画像だけを受け入れたい。
ダリル

@DarylはiOSにはありません。Androidはそれを行うcapture属性をサポートしています。HTML Media Captureの正しい構文を
Octavian Naicu

ユーザーがしばらくクリックしなかった後、この[写真を撮る]または[ビデオと写真ライブラリ]ポップアップを閉じますか?
プリティッシュ

ビデオ機能はもうないように見えますか?
Martian2049 2017

25

iOS6では、Appleは<input type="file">タグを介してこれをサポートします。Appleの開発者向けドキュメントで役立つリンクを見つけることができませんでしたが、ここに例があります

オーバーレイのように見え、より高度な機能はまだ利用できませんが、これは多くのユースケースで機能するはずです。

編集:w3cには、iOS6 Safariのサブセットを実装しているように見える仕様があります。このcapture属性は特にありません。


10

これは機能していると思います。ビデオまたはオーディオの記録。

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

または(新しい方法)

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

そうでない場合は、おそらくios6で動作します。詳細については、get user mediaを参照してください。


4

PICUPのアプリはHTML5ページから写真を撮ると、あなたのサーバーにアップロードする方法です。サーバー上で追加のプログラミングが必要ですが、PhoneGapを除いて、私は別の方法を見つけていません。


5
iOS8では、Picupはもう必要ありません。HTML5は<input type = "file" accept = "image / *" id = "capture" capture = "camera">をサポートしています。SafariとChromeで確認済み。
rakensi

1

この質問はすでに数年前のものですが、その間に、カメラに直接アクセスする、プレビューを表示する、スナップショットをキャプチャするなどの追加の可能性が生まれました(QRコードスキャンなど)。

このGoogle Developersの記事では、画像やカメラのデータをWebアプリケーションに取り込む方法(?)を(「どこでも作業」(デスクトップブラウザーでも)から「最新の最新のものだけで作業する」まで、すべて(?)詳しく説明しています。 -カメラ付き携帯電話」。多くの役立つヒントとともに。

説明された方法:

  • URLを尋ねる
  • ファイル入力(ここの他のほとんどの投稿でカバーされています)
  • ドラッグアンドドロップ(デスクトップブラウザーに便利)
  • クリップボードから貼り付け
  • カメラにインタラクティブにアクセスします(QRコードのように、アプリケーションが「見るもの」について即座にフィードバックする必要がある場合に必要です)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.