Обнаружение веб-камеры/микрофона

Я хотел бы создать страницу, которая определяет, работает ли камера/микрофон пользователя, примерно так: http://www.tokbox.com/user-diagnostic/

Мне просто нужно руководство, с чего начать.

Спасибо!


person OneSneakyMofo    schedule 14.10.2012    source источник
comment
Привет, мне нужно реализовать то же, что и вы, поэтому не могли бы вы помочь мне, как это сделать, я на самом деле новичок в сценарии действий 3.0/flash. Спасибо.   -  person Sumodh Nair    schedule 01.04.2014
comment
@SumodhNair Пожалуйста, посмотрите ответ, который я опубликовал.   -  person OneSneakyMofo    schedule 02.04.2014
comment
1+ за веселое имя пользователя   -  person Brad    schedule 18.09.2014


Ответы (4)


Этот плагин jQuery может предоставить вам список доступных веб-камер, которые есть у пользователя:

http://www.xarg.org/project/jquery-webcam-plugin/

Если webcam.getCameraList().length == 0, то вы знаете, что у них нет веб-камеры.

person Curt    schedule 14.10.2012

Во флеше можно использовать

 var cam:Camera = Camera.getCamera(); 
if (cam == null) 
{ 
    trace("User has no cameras installed."); 
} 
else 
{ 
    trace("User has at least 1 camera installed."); 
}
person gyandas.kewat    schedule 15.10.2012
comment
Спасибо, @gyandas.kewat. К сожалению, просто нет простого Has Mic? Да нет; Есть Кэм? Инструмент да / нет, поэтому я только что создал его сам. Чтобы расширить это, мне нужно было использовать классы ExternalInterface, Camera и Microphone для Actionscript 3/Flash, и я отправил свои переменные (cam, mic) из файла Flash в Javascript, используя класс ExternalInterface. Надеюсь, это поможет кому-то. - person OneSneakyMofo; 13.12.2012
comment
@OneSneakyMofo: Привет, мне нужно реализовать то же самое, что вы хотели, поэтому не могли бы вы помочь мне, как это сделать, я на самом деле новичок в сценарии действий 3.0/flash. Спасибо. - person Sumodh Nair; 01.04.2014

Попробуйте это.., чтобы получить доступ к веб-камере

$(function(){
    //initialize camera in browser
$("#camera").webcam({
            width: 320,
            height: 240,
            mode: "callback",
            swffile: "jscam_canvas_only.swf",
            onTick: function() {},
            onSave: function() {},
            onCapture: function() {},
            debug: function() {},
            onLoad: function() {}
        }); 
});

var test;
        test = function(){
            var tester = false;
            //try catch block for tight binding
            try{
                //condition if length is 0 or undefined
                if(webcam.getCameraList().length == 0){  
                   alert('You dont have a camera');  
                                            return;
                }else{
                    alert("cam detected");
                                            return;

                }
                tester = true;
            }catch(e){
                tester = false;
                setTimeout(test,1000);
            }
        }
        setTimeout(test,1000);



</script>

<div id="camera" style="opacity:0"></div>
person Raj Kamal    schedule 01.04.2014

Я закончил тем, что построил свою собственную вещь.

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Microphone.html

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html

Я обнаружил номер камеры и номер микрофона и передал их обратно в Javascript с помощью ExternalInterface.

Работает как шарм.

person OneSneakyMofo    schedule 01.04.2014
comment
Было бы очень полезно, если бы вы могли поделиться примером кода о том, как действовать, я запутался между вызовом, сделанным между as и js. - person Sumodh Nair; 02.04.2014
comment
Да, просто используйте это: ExternalInterface.call(sendToJavaScript, input.text); Затем в вашем Javascript есть функция с именем sendToJavascript (текст). - person OneSneakyMofo; 02.04.2014
comment
Привет, спасибо за отзыв, я смог сделать это с помощью externalInterface. Как оказалось, проблема заключалась в том, что я не запускал свой код с отключенной безопасностью, поэтому я не мог вызывать javascript через actionscript. - person Sumodh Nair; 04.04.2014