Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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);
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment