Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save youpy/188946 to your computer and use it in GitHub Desktop.

Select an option

Save youpy/188946 to your computer and use it in GitHub Desktop.
package {
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.events.Event;
import flash.events.SampleDataEvent;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.*;
import flash.media.Camera;
import flash.media.Video;
import flash.utils.ByteArray;
public class CameraView extends Sprite {
private var video:Video;
private var cameraBmp:Bitmap;
private var cameraBmpData:BitmapData;
private var w:int = 100;
private var h:int = 80;
private var mySound:Sound = new Sound();
private var myChannel:SoundChannel;
public function CameraView() {
var camera:Camera = Camera.getCamera();
if (camera != null) {
video = new Video(w, h);
video.attachCamera(camera);
addEventListener(Event.ENTER_FRAME, tick);
} else {
trace("error");
}
cameraBmpData = new BitmapData(w, h, false, 0xaaaaaa);
cameraBmp = new Bitmap(cameraBmpData);
addChild(cameraBmp);
mySound.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
myChannel = mySound.play();
}
private function tick(event:Event):void {
cameraBmpData.draw(video);
}
private function onSampleData(e:SampleDataEvent):void {
var r:Number, g:Number;
for (var i:int = 0; i < h; i++) {
for (var j:int = 0; j < w; j++) {
r = ((cameraBmpData.getPixel(j, i) >> 16) / 128.0) - 1;
g = ((cameraBmpData.getPixel(j, i) >> 8 & 0x0000ff) / 128.0) - 1;
e.data.writeFloat(r);
e.data.writeFloat(g);
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment