http://46.4.226.29/camtest/
updated to include a dropdown of all camera's on the system, and a button to
kick them off with.
right now, if it only finds one camera it will attempt to attach it, if it
finds more than one it will wait for you to select which one you want to use
and then click start webcam button.
this fails for me in chrome v 14, and i'm told on a mac in any browser.
source below...
package
{
import fl.controls.Button;
import fl.controls.ComboBox;
import fl.data.DataProvider;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.StatusEvent;
import flash.external.ExternalInterface;
import flash.media.Camera;
import flash.media.Video;
public class Main extends Sprite
{
private var cam:Camera;
private var video:Video;
private var combo:ComboBox;
private var dp:DataProvider;
private var butt:Button;
public function Main():void
{
if (stage) init();
else addEventListener(Event.INIT, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
combo = new ComboBox();
combo.prompt = "Select a webcam...";
dp = new DataProvider();
var camList:Array = Camera.names;
for (var i:int = 0; i < camList.length; i++)
{
var camName:String = camList[i];
dp.addItemAt( { label:camName, data:String(i) }, i );
/*if (camName.indexOf("Google") > -1)
{
var googleCam:Camera = Camera.getCamera(i.toString())
googleCam.setMode(400, 300, 30, false);
var vid:Video = new Video(cam.width, cam.height);
vid.attachCamera(googleCam);
}*/
}
addChild(combo);
combo.x = 10;
combo.y = 10;
combo.width = 150;
combo.dataProvider = dp;
combo.addEventListener(Event.CHANGE, comboSelected);
if (dp.length == 1) attachCamera("0");
butt = new Button();
butt.y = combo.y;
butt.x = combo.x + combo.width + 15;
butt.label = "Start Webcam";
butt.width = 100;
addChild(butt);
}
private function comboSelected(e:Event):void
{
butt.addEventListener(MouseEvent.CLICK, buttClicked);
}
private function buttClicked(e:MouseEvent):void
{
cam.removeEventListener(StatusEvent.STATUS, startcam);
cam = null;
removeChild(video);
video = null;
attachCamera(combo.selectedItem.data);
}
private function attachCamera(camIndex:String):void
{
cam = Camera.getCamera(camIndex);
if (cam != null) {
//cam.setMode(320, 240, 30, false);
cam.setMode(400, 300, 30, false);
video = new Video(cam.width, cam.height);
video.attachCamera(cam);
video.y = 50;
video.x = 10;
cam.addEventListener(StatusEvent.STATUS, startcam);
addChild(video);
}
}
private function startcam(event:StatusEvent):void {
if (ExternalInterface.available) ExternalInterface.call("alert",
event.toString());
}
}
}
On 19 September 2011 10:24, tom rhodes <[email protected]> wrote:
> hey cedric if you've got code that you think 100% works on everything send
> it on and i'll put it up on the link. i thought that too :)
>
> after googling i've found stuff about looping through character names and
> attaching google cameras to video objects offstage, or pulling out the name
> for the usb cam on a mac if on mac OS, or even just using index 2 for the
> mac. all seem a bit hacky to me. this is somethign that has worked in flash
> fine for a LONG time, that now appears to be broken. what's up?
>
>
> 2011/9/19 Cédric Muller <[email protected]>
>
>> Doesn't work for me, Mac, Safari 5.1 and Flash Player 10.3.181.14
>>
>> Could you drop the 'if (stage) init' line ?
>>
>> (I am asking because I have plenty of webcam examples, and they do work)
>>
>> hth,
>> Cedric
>>
>> > hey all,
>> >
>> > i want to confirm that this...
>> >
>> > http://46.4.226.29/camtest/
>> >
>> > does not work on a mac, and in chrome 14 beta on the pc? massively
>> simple
>> > webcam example, source below...
>> >
>> > <code>
>> > package
>> > {
>> > import flash.display.Sprite;
>> > import flash.events.Event;
>> > import flash.events.StatusEvent;
>> > import flash.media.Camera;
>> > import flash.media.Video;
>> >
>> > public class Main extends Sprite
>> > {
>> > private var cam:Camera;
>> > private var video:Video;
>> > public function Main():void
>> > {
>> > if (stage) init();
>> > else addEventListener(Event.ADDED_TO_STAGE, init);
>> > }
>> > private function init(e:Event = null):void
>> > {
>> > removeEventListener(Event.ADDED_TO_STAGE, init);
>> > // entry point
>> > cam = Camera.getCamera();
>> > if (cam != null) {
>> > //cam.setMode(320, 240, 30, false);
>> > cam.setMode(400, 300, 30, false);
>> > video = new Video(cam.width, cam.height);
>> > video.attachCamera(cam);
>> > cam.addEventListener(StatusEvent.STATUS, startcam);
>> > addChild(video);
>> > }
>> > }
>> > private function startcam(event:StatusEvent):void {
>> > // stuff
>> > }
>> > }
>> > }
>> > </code>
>> >
>> > i've NEVER experienced probs with webcam before, what is going on here?
>> >
>> > tom.
>> > _______________________________________________
>> > Flashcoders mailing list
>> > [email protected]
>> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>> _______________________________________________
>> Flashcoders mailing list
>> [email protected]
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders