You are viewing an archive page. Click here to go to the current Open Exhibits website.
Log-in is disabled for the archived site
Software

Software: Modules

Templates allow novices to create their own floor or Web based exhibits. Universal Modules allow more advanced developers to combine, branch, and write their own modules that can act as building blocks for new Exhibits.

Live Video Viewer

Live Video Viewer

First Posted: January 28, 2011
v1.0.1 Updated: January 31, 2012

Project Summary

This multitouch module gives the ability to view and explore giga pixel images. It uses image tiles to dynamically re-create the giga pixel image at various zoom levels. Users can pan around the image using the drag gesture, zoom stepwise using the double tap gesture and zoom continuously using the two finger zoom gesture.

ABOUT THIS CONTRIBUTOR

Profile picture for Paul Lacey

Paul Lacey

Dir Multitouch Engineering
Open Exhibits Staff
RSS Feed

Total Activity:  1K
Downloads:  20
Article Views:  1K
Shared:  1
Tweets:  0

Uploads:  7
Comments:  4
Favorites:  8
Likes:  3
Emails:  0

There are no comments yet. Share your thoughts!




Summary

If there is more than one camera and driver installed on your computer operating system Flash PLayer will recognise these cameras, asign a name (related to the camera model and driver) then place the cameras in a camera device list. The LiveVideoViewer module currently uses the unique position of cameras in this device list to reference attached cameras.  For example if the tag is set to "0" the first camera in list is always selected. If there is only one camera connected to the computer this setting this will ensure that it is always selected by default. Additionally cameras can be explicitly selected by testing where a camera is on the device list. To check the camera device list: right click on a swf when playing and select "Settings". Then click on the "camera" tab and click on the device list drop down menu. 

Note: Initially users will need to give Flash Player permission to access connected video cameras. To do this: right click and select "Settings". Then in the "Adobe Flash Player Settings" window select "Allow", check the "Remember" box and click on the "Close" button. This gives Flash Player permission to stream data from digital cameras connected to your computer. Since the settings were remembered when the app is restarted on the same machine in the future the Flash Player will automatically connect to a defined live camera feed without prompting.

Features

  • Multiple independent live video feeds
  • Configurable window gesture interactions
  • Select Number of cameras via XML
  • Set individual video feed dimensions via XML
  • Set individual video via XML
  • Set individual video frame rate via XML
  • Set individual video bandwidth allowances via XML
  • Set individual video rendering quality via XML

    Example Code

    Using this

    package id.module{
    
     import flash.events.Event;
     import id.core.TouchComponent;
     import id.component.LiveVideoDisplay;
     import id.element.LiveVideoParser;
    
     public class LiveVideoViewer extends TouchComponent {
    
     private var livevideoDisplay:LiveVideoDisplay;
         public function LiveVideoViewer(){
    
         super();
         LiveVideoParser.settingsPath="LiveVideoViewer.xml";        
         LiveVideoParser.addEventListener(Event.COMPLETE,onParseComplete);       
       }
         private function onParseComplete(event:Event):void{
    
             livevideoDisplay = new LiveVideoDisplay();
             livevideoDisplay.id = 0;            
             addChild(livevideoDisplay);
          }    
     
        }
    }

    Properties and Customization

    Included XML tags and functions:

    Name Description Notes
    <Content> Contains the parameters for each video object populated to the application
    <FrameGestures> Sets which gestures can be used to manipulate the window/frame object on the stage
    <FrameStyle> Sets the style of the frame that surrounds each object window
    <GlobalSettings> Sets vars that effect all objects on stage
    <LiveVideoGestures> Sets which gestures can be used on the video area itself.
    <Source> Defines each video object populated by the application. Each source must have a unique ID.
    <amountToShow> Sets the number of video objects to display on stage
    <cornerRadius> Sets the radius of the frame's corners. Set to "0" for angular corners To make corners angular, set to "0"
    <fillAlpha> Sets the opacity of the frame. 0 is completely transparent, 1 is fully opaque, .5 is half opaque, etc.
    <fillColor1> Sets the fill color of the frame. Input a hex color value after 0x
    <frameDraw> Sets whether or not an external frame is drawn.
    <livevideoBandwidth> Sets the bandwidth of the video feed. Default value is 16384. Set to 0 to allow flash to use as much bandwidth as required for the specified video feed.
    <livevideoCam> Sets the live video reference name/number. Device number is dependant on the order in which they were added
    <livevideoHeight> Sets the display height of the video area in pixels.
    <livevideoQuality> Sets the quality of the video feed. 1 is the lowest 100 is the highest
    <livevideoWidth> Sets the display width of the video area in pixels.
    <outlineColor> Sets the thickness of the border line in pixels.
    <outlineStroke> Sets the outline color of the frame border.
    <padding> Sets the padding (thickness) of the frame around the window

    Included AS3 Classes and customization:

    Name Superclass Notes
    LiveVideoViewer TouchComponent
    Name Type Description Notes
    COMPLETE String String utilized for a dispatch event when module has loaded. Public Static
    displayObject Array The object holder for the LiveVideoViewer Class. Public
    id int The identification number of an object within a module. Public
    livevideoDisplay LiveVideoDisplay The main display class for the LiveVideoViewer. Private
    moduleName String The module name is the same as its class name. Public
    Name Description Notes
    LiveVideolViewer() The function called after the module xml has been parsed. Public
    callNewObject(int):void The Constructor. Public
    onParseComplete(event:Event):void Calls an new object to the stage and passes an int as its argument. Private
    updateUI():void Calls to the callNewObject() function. Protected
    Name Description Notes

    This material is based upon work supported by the National Science Foundation under Grant Number Division of Research on Learning in formal and informal settings #1010028. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.


    Open Exhibits was developed by Ideum, makers of GestureWorks. Open Exhibits SDK is free for non-commercial use.

    Connect
    YouTube Twitter Flickr