2012-05-15 3 views
5

私が取り組んでいるウェブサイトでthis jQuery webcam pluginを使用しています。あなたがウェブサイトに行くと、あなたはそれがフラッシュを使用していることに気付くでしょう、そして、あなたはそれを働かせるために「受け入れる」をクリックしなければなりません。jQuery webcam/flash:ウェブカメラがアクティブかどうかを検出するには?

ウェブカメラがアクティブ(オン)かどうかを確認したいと思います。どうすればjavascript/jqueryでこれを行うことができますか?

つまり、ここでif文をどのように置き換えますか?

function capture_image(){ 
    if(webcam.muted == true) {alert("hey");} 

私はjavascriptとjqueryのプロとは遠く離れているため、実際のコードは非常に高く評価されます。

また、誰かがウェブカメラのイベントをどのようにキャプチャするか教えてもらえれば、非常に感謝しています。あなたがそれを理解できないならば、それについて心配しないでください。

答えて

4

ウェブカメラのdebugオプションに以下の機能を追加してください。

$("#camera").webcam({ 
    width: 320, 
    // other options etc. 
    debug: function(type, message) { 
     if (message === "Camera started") { window.webcam.started = true; } 
    } 
}); 

我々は(すなわちmuted === true)真であることが非アクティブのためにテストすることはできませんが、今、私たちはwebcam.startedtrueまたはundefined/falseであるためにテストすることができます。

function capture_image(){ 
    if(!webcam.started) { alert("hey, camera not started"); } 
} 

イベントに

をキャプチャする方法

debugイベント以外のイベント自体はありません。あなたは1つを作ることができます...

まず次のようにします、これは私の作品

window.webcam.onStarted = function() { 
    alert("Whey, the webcam started"); 
}; 
+0

作品大変!ありがとう。 – varatis

0

.getCameraList()メソッドを使用すると、利用可能なすべてのカメラを取得できます。

onLoad の登録が完了するとすぐにonLoadコールバックが呼び出されます。上記の例では、私は、利用可能なすべてのカメラの リストを取得するためにコールバックを使用します。

onLoad: function() { 
    var cams = webcam.getCameraList(); 
    for(var i in cams) { 
     jQuery("#cams").append("<li>" + cams[i] + "</li>"); 
    } 
} 
+0

残念ながら、これはページの読み込み時にのみ実行されます。 – varatis

+0

@varatisこれは単なる例です。他のイベントハンドラで登録することもできます。 – xdazz

+1

ええ、それは私の質問です...ウェブカメラがオンかどうかを確認する方法。これは、どのウェブカメラが存在するかを知るだけではなく、どのウェブカメラが存在するかを示しています。 – varatis

0

私はあなたがプライバシー設定がされていたときに、あなたのページにJavaScriptを伝えるためにExternalInterface APIを使用する必要がありますだと思います同意した。

しかし、フラッシュにはカメラの制御機能があるため、「画像情報」にアクセスできるかどうかわからないので、JavaScriptはフラッシュに「キャプチャ」と画像のみを伝えることができますExternalInterfaceを使用する場合は、ページ上のJavaScriptが何かを行う前に、画像データをWebサービスに送信するためにFlash(ActionScript)を使用する必要があります。

HTML5には、Flash実装ではなく、<input type="file" accept="image/*" capture="camera" id="capture">があります。

0

ないすべてのこれらのプラグインわからなど:

$("#camera").webcam({ 
    width: 320, 
    // other options etc. 
    debug: function(type, string) { 
     if (string === "Camera started") { 
      window.webcam.started = true; 
      if (window.webcam.onStarted) { window.webcam.onStarted(); } 
     } 
    } 
}); 

次は私たちの新しいイベントwebcam.onStartedに機能を追加しますまだテスト中ですが、

webcamActive = false; 
webcamActive = $("#video").attr('src'); 
関連する問題