2016-06-29 8 views
7

html5ページから画像を取得する方法はたくさんあります。少なくとも:クロム、Firefoxの、アンドロイドデフォルト、サファリ html5から写真を撮る

  • 私はリアルタイムの取得を必要としないブラウザやOSのための

    • 幅広い支持: は、私はまだ自分のニーズに最適な何か不明です。

      • <input type="file" accept="image/*;capture=camera">
      • Navigator.getUserMedia()(それは非推奨と思われる)
      • MediaDevices.getUserMedia()(:ユーザーはシステムカメラアプリケーション

      を要求し、少なくとも3つの解決策はありますが、写真を撮るためにボタンを押す必要があります実験的なようです)

    とにかく、写真を(w/ getUserMedia)のページに埋め込むためには、最初の方法にしか依存できないかどうかわかりません。 WebRTC getUserMedia APIを使用して

  • +2

    getUserMediaは非推奨ではなく、名前を 'navigator.mediaDevices.getUserMedia'に変更しました。電話で高解像度の写真を撮りたい場合は、「getUserMedia」がビデオ解像度atmに制限されているため、#1に進みます。 – jib

    +0

    よろしくお願いいたします。私はこのリンクで混乱していました。https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia名前を変更しただけではわかりませんでしたが、同じクラスです! – Mark

    +0

    成功と失敗のコールバックを取るのではなく、約束を返しますが、それ以外は同じです。 – jib

    答えて

    8

    はSafari以外のすべての近代的なブラウザをカバーするために起こっている:http://caniuse.com/#feat=stream

    Hereは(コードを記述するpageへのリンクを)静止画を撮るためにgetUserMediaを使用する例ページです。ほとんどのgetUserMediaデモは、可視のキャンバス領域にビデオストリームを表示しますが、必須ではありません。可視のキャンバスにビデオストリームを表示せずに、getUserMediaを使用してイメージをキャプチャできます。

    残念ながら、アップルはWebRTC APIを採用するのが遅かったので、ファイル入力タグは、あなたがコルドバのようなものを使用しない限り、あなたが望む最高のものだと思います。 Hereは、ファイル入力タグの使用方法の説明です。

    Media Capture APIは、現在のW3C勧告を実装しているブラウザ(入力タグに裸のキャプチャアトリビュートを使用する)についてはわかりません。 <input type="file" accept="image/*">スタイルは現在、モバイルブラウザでのみサポートされているようです。

    要するに、近い将来に幅広いブラウザをサポートしたい場合は、AppleがWebRTC APIのサポートを開始するまで、または他のデスクトップブラウザがMedia Capture API(またはその変形キャプチャ属性は現在モバイルブラウザでサポートされています)。

    +0

    私が知る限り、getUserMedia APIはカメラの出力をWebページに埋め込むことができます。私は何かを埋め込む必要はなく、静止画を取得して(バックグラウンドで)処理するので、最初の方法がまだまだ良いと思います。 – Mark

    +0

    @マーク回答を更新しました。近い将来に幅広いブラウザサポートが必要な場合は、恐らく両方の方法をサポートする必要があります。あなたの使用が単なるモバイルでない限り、入力タグ方法で十分です(ただし、W3C勧告では若干変更されるかもしれませんが)。また、私のアップデートでは、getUserMediaはライブビデオを表示する必要はないことに気付きました。ほとんどのデモは、デモの目的でもっと面白いので、それを示しています。 – kanaka

    +0

    私の使用はモバイル向けではありますが、getUserMediaはライブビデオを表示する必要はありません。 – Mark

    関連する問題