Packagecom.rainbowcreatures
Classpublic class FWVideoEncoder
InheritanceFWVideoEncoder Inheritance flash.display.MovieClip
Implements ISpecialFile

FlashyWrappers allows you to encode mp4 videos directly in AIR / Flash using the platform encoders(hardware accelerated, where available) or cross-compiled FFmpeg in Flash web player. You can capture AIR's / Flash screen or supply your own data through frame ByteArrays. It is also possible to supply audio data and to an extent capture the playing audio, using FWSoundMixer.



Public Properties
 PropertyDefined By
  allocateDomainMemory : int = 0
Pre-allocate domain memory for the Flash recorder? This might reduce the memory growth as it should avoid memory fragmentation.
FWVideoEncoder
  iOS_nativeQuality : int = 2
FWVideoEncoder
  isEncoding : Boolean = false
Are we in the "post-processing" phase, this is useful mostly on iOS where this phase exists and is pretty long currently.
FWVideoEncoder
  isRecording : Boolean = false
Is FW recording? This is true after calling start in general.
FWVideoEncoder
  mergedFile : File
Only for mobile, reference to the temp MP4 video file which already includes audio.
FWVideoEncoder
  mergedFilePath : String
The path to the merged video file.
FWVideoEncoder
  mobileFilename : String = video_merged.mp4
On iOS and Android, this changes the temp video filename when saving videos to mobile.
FWVideoEncoder
  _parent : Sprite = null
Parent sprite to FW encoder.
FWVideoEncoder
  platform : String = FLASH
Current platform which FW has detected.
FWVideoEncoder
  platform_type : String = DESKTOP
Current platform type which FW has detected.
FWVideoEncoder
  saveToFileWin : String
On Windows, if this contains filename, the video will be saved to this file natively, instead of copying it to ByteArray.
FWVideoEncoder
  stage3DWithMC : Boolean = false
Capture Stage3D layer with MovieClip layer (doesn't affect OpenGL capture on mobile).
FWVideoEncoder
Public Methods
 MethodDefined By
  
FWVideoEncoder
  
addAudioFrame(data:ByteArray):void
Add 32-bit floating PCM audio data to encoder.
FWVideoEncoder
  
addAudioFrameShorts(data:ByteArray):void
Add 16-bit shorts to encoder.
FWVideoEncoder
  
addSoundtrack(s:Sound):void
Add soundtrack to the video (typically mp3).
FWVideoEncoder
  
addVideoFrame(pixels:ByteArray):void
Add ARGB frame ByteArray to the video encoder.
FWVideoEncoder
  
Special method to get Android encoder quirks string.
FWVideoEncoder
  
capture(target:* = null):void
Automatically capture AIR stage content, Stage3D and/or display object.
FWVideoEncoder
  
captureMC(MC:DisplayObject):void
Deprecated: Use capture() method instead with DisplayObject as argument
FWVideoEncoder
  
captureStage3D(c:Context3D, flushToEncoder:Boolean = true):void
Deprecated: Use capture() method instead with Context3D as argument
FWVideoEncoder
  
configureRAMGuard(RAMadjusterFPSDivider:Number = 2, RAMadjusterTolerance:Number = 1.5):void
Configure the RAM guard for FW Flash.
FWVideoEncoder
  
dispose():void
Forcibly dispose the ANE.
FWVideoEncoder
  
finish():void
Finish the recording.
FWVideoEncoder
  
forceFramedropMode(framedropMode:int):void
Force framedrop mode.
FWVideoEncoder
  
forcePTSMode(ptsMode:int):void
Force PTS calculatin mode.
FWVideoEncoder
  
Get encoding progress.
FWVideoEncoder
  
getInstance(parent:Sprite = null, domainMemory:int = 0):FWVideoEncoder
[static] Get the FW encoder instance.
FWVideoEncoder
  
getVideo():ByteArray
Get the ByteArray containing the encoded video.
FWVideoEncoder
  
iOS_captureFullscreen(waitForRendering:Boolean = false):void
Deprecated: Use capture() method instead null as argument
FWVideoEncoder
  
FWVideoEncoder
  
FWVideoEncoder
  
FWVideoEncoder
  
FWVideoEncoder
  
iOS_ReplayKitStart(recordMicrophone:int = 0):int
FWVideoEncoder
  
FWVideoEncoder
  
iOS_startAudioMix(filename:String, duration:Number):void
Only for iOS - alternative to addSoundtrack.
FWVideoEncoder
  
iOS_stopAudioMix(filename:String):void
Only for iOS - stop audio mix added before.
FWVideoEncoder
  
load(pathToBridge:String):void
Load the encoder.
FWVideoEncoder
  
playVideo(x:Number, y:Number, width:Number, height:Number, useVideoTexture:Boolean = false, videoContext3D:Context3D = null):void
Play the last recorded video using one of the playing methods depending on the platform.
FWVideoEncoder
  
saveToGallery(filename:String, album:String):void
Save video to gallery / camera roll.
FWVideoEncoder
  
setAudioRealtime(r:Boolean):void
Flash Player only - experimental audio recording mode, which uses clock timestamps mixed with monotonic PTS to record audio.
FWVideoEncoder
  
setCaptureRectangle(x:int, y:int, w:int, h:int, color:int = 0xFF00FFFF, mode:int = 0):void
Set capture rectangle on mobile, in realtime.
FWVideoEncoder
  
setDimensions(w:Number, h:Number):void
Set video dimensions.
FWVideoEncoder
  
setFps(fps:int):void
Set video fps.
FWVideoEncoder
  
setLogging(level:int):void
Set logging level.
FWVideoEncoder
  
setRealtime(r:Boolean):void
Set realtime mode.
FWVideoEncoder
  
setRecordAudio(mode:String):void
Set audio mode.
FWVideoEncoder
  
start(fps:int = 20, _recordAudio:String = audioOff, _realtime:Boolean = true, w:Number = 0, h:Number = 0, bitrate:int = 1000000, audio_sample_rate:int = 44100, audio_bit_rate:int, keyframe_freq:Number = 0, frameOffset:Point = null):void
Start FW recording.
FWVideoEncoder
Public Constants
 ConstantDefined By
  AUDIO_MICROPHONE : String = audioMicrophone
[static] Audio recording from microphone.
FWVideoEncoder
  AUDIO_MONO : String = audioMono
[static] Audio recording in MONO.
FWVideoEncoder
  AUDIO_OFF : String = audioOff
[static] // public static const STATUS_CAPTURE_AUTHORIZED:String = "capture_authorized"; // public static const STATUS_CAPTURE_DENIED:String = "capture_denied"; / Audio recording is OFF.
FWVideoEncoder
  AUDIO_STEREO : String = audioStereo
[static] Audio recording is STEREO.
FWVideoEncoder
  CAPTURERECT_MODE_CALCULATE : int = 0
[static] Calculate the capture rectangle This mode works only with NO_SCALE stage scaling mode and TOP_LEFT stage alignment.
FWVideoEncoder
  CAPTURERECT_MODE_VISUAL : int = 1
[static] Measure the capture rectangle with visual guides.
FWVideoEncoder
  FRAMEDROP_AUTO : int = 0
[static] Framedrop mode auto.
FWVideoEncoder
  FRAMEDROP_OFF : int = 1
[static] Framedrop mode off.
FWVideoEncoder
  FRAMEDROP_ON : int = 2
[static] Framedrop mode on.
FWVideoEncoder
  LOGGING_BASIC : int = 0
[static] Basic logging.
FWVideoEncoder
  LOGGING_VERBOSE : int = 1
[static] Verbose logging.
FWVideoEncoder
  PLATFORM_ANDROID : String = ANDROID
[static] Android platform
FWVideoEncoder
  PLATFORM_FLASH : String = FLASH
[static] Flash Player platform
FWVideoEncoder
  PLATFORM_IOS : String = IOS
[static] iOS platform
FWVideoEncoder
  PLATFORM_MAC : String = MAC
[static] Mac platform
FWVideoEncoder
  PLATFORM_TYPE_DESKTOP : String = DESKTOP
[static] Desktop platform
FWVideoEncoder
  PLATFORM_TYPE_MOBILE : String = MOBILE
[static] Mobile platform
FWVideoEncoder
  PLATFORM_WINDOWS : String = WINDOWS
[static] Windows platform
FWVideoEncoder
  PTS_AUTO : int = 0
[static] Automatic PTS calculation.
FWVideoEncoder
  PTS_MONO : int = 1
[static] Mono PTS calculation.
FWVideoEncoder
  PTS_REALTIME : int = 2
[static] Realtime PTS calculation.
FWVideoEncoder
  STATUS_FINISHED : String = encoded
[static] Use this when listening for FW status events, indicates FW video was encoded and is ready to be saved / worked with.
FWVideoEncoder
  STATUS_GALLERY_FAILED : String = gallery_failed
[static] Use this when listening for FW status events, only for mobile.
FWVideoEncoder
  STATUS_GALLERY_SAVED : String = gallery_saved
[static] Use this when listening for FW status events, indicates FW video was saved to gallery / camera roll.
FWVideoEncoder
  STATUS_READY : String = ready
[static] Use this when listening for FW status events, indicates FW was loaded and is ready to start.
FWVideoEncoder
  STATUS_STARTED : String = started
[static] Use this when listening for FW status events, indicates FW was started and is ready to record.
FWVideoEncoder
  STATUS_STOPPED : String = stopped
[static] Use this when listening for FW status events, indicates FW encoding was forced to stop, for example when the app was suspended.
FWVideoEncoder
Property Detail
_parentproperty
public var _parent:Sprite = null

Parent sprite to FW encoder. This should have stage reference (stage != null). FW uses this to find out various stage properties, such as width, height, fps etc.

allocateDomainMemoryproperty 
public var allocateDomainMemory:int = 0

Pre-allocate domain memory for the Flash recorder? This might reduce the memory growth as it should avoid memory fragmentation.

iOS_nativeQualityproperty 
public var iOS_nativeQuality:int = 2

isEncodingproperty 
public var isEncoding:Boolean = false

Are we in the "post-processing" phase, this is useful mostly on iOS where this phase exists and is pretty long currently.

isRecordingproperty 
public var isRecording:Boolean = false

Is FW recording? This is true after calling start in general.

mergedFileproperty 
public var mergedFile:File

Only for mobile, reference to the temp MP4 video file which already includes audio.

See also

mergedFilePathproperty 
public var mergedFilePath:String

The path to the merged video file.

See also

mobileFilenameproperty 
public var mobileFilename:String = video_merged.mp4

On iOS and Android, this changes the temp video filename when saving videos to mobile. Currently doesn't work on other platforms.

platformproperty 
public var platform:String = FLASH

Current platform which FW has detected.

See also

platform_typeproperty 
public var platform_type:String = DESKTOP

Current platform type which FW has detected.

See also

saveToFileWinproperty 
public var saveToFileWin:String

On Windows, if this contains filename, the video will be saved to this file natively, instead of copying it to ByteArray. When you use this, getVideo() always returns an empty ByteArray. This can avoid memory issues in 32-bit Win AIR if the video is too large.

stage3DWithMCproperty 
public var stage3DWithMC:Boolean = false

Capture Stage3D layer with MovieClip layer (doesn't affect OpenGL capture on mobile). Indicates whenever we want to capture Stage3D together with MovieClip in one call - if this is set to yes, the frame is not sent to the encoder after capturing Stage3D, but only after capturing the top MovieClip layer. The default is false, which means that Stage3D and MovieClip captures are both sent to encoder straight away.

Constructor Detail
FWVideoEncoder()Constructor
public function FWVideoEncoder()



Method Detail
addAudioFrame()method
public function addAudioFrame(data:ByteArray):void

Add 32-bit floating PCM audio data to encoder. This is the lowest level to add audio data to the encoder.

Parameters

data:ByteArray — the 32-bit floating PCM audio data ByteArray. Currently there is no size limit on the data, FW tries to handle this by feeding it to the encoder on another thread, on some platforms.

addAudioFrameShorts()method 
public function addAudioFrameShorts(data:ByteArray):void

Add 16-bit shorts to encoder. This is only useful for Android, on all other platforms FW expects 32-bit PCM! Actually, Android also accepts 32-bit floats through addAudioData, then converts those to 16-bit shorts, which takes some extra time. FWSoundMixer uses this method to add shorts directly on Android.

Parameters

data:ByteArray — the audio data composed of shorts

addSoundtrack()method 
public function addSoundtrack(s:Sound):void

Add soundtrack to the video (typically mp3). Only safe in non-realtime mode, for realtime mode audio mixing use FWSoundMixer. Internally, this will cause "extract" method to be run which might be slow (it could even lag your app for a bit).

Parameters

s:Sound — the Sound instance you wish to add.

addVideoFrame()method 
public function addVideoFrame(pixels:ByteArray):void

Add ARGB frame ByteArray to the video encoder. This is the lowest level way to add video frames. It is not recommended to use it on mobile, as that will cause a pixels to texture upload(which is pretty slow).

Parameters

pixels:ByteArray — the ARGB pixels you wish to send to the encoder.

android_getEncoderQuirks()method 
public function android_getEncoderQuirks():String

Special method to get Android encoder quirks string. Currently this can return only one value, "quirk_mtk". If this string is returned, it indicates to you that FW will force recording dimensions to 1280 x 720 if you don't do it yourself. It is instead recommended to adjust your code to work with this resolution on Android if MTK is detected, until a better solution is found. The MTK encoder was found to basically not work reliably in any other resolutions with standard encoder settings. This affects some Lenovo, Meizu and possibly more devices.

Returns
String
capture()method 
public function capture(target:* = null):void

Automatically capture AIR stage content, Stage3D and/or display object. This tries to recognize which target is being captured and then selects the appropriate method to capture it.

  • On mobile realtime, if you do not specify any target, FW will capture both Stage3D + display objects fullscreen using OpenGL (fast).
  • On mobile realtime, if you specify target DisplayObject(or Context3D), FW will refuse to capture. The recommended way is to capture a rectangle instead.
  • On mobile non-realtime, if you do not specify any target, FW will capture fullscreen using addVideoFrame and scaling (slower).
  • On mobile non-realtime, if you specify target, FW will capture only the DisplayObject using addVideoFrame and scaling (slower).
  • On desktop realtime and non-realtime, if you do not specify any target, FW will capture fullscreen using addVideoFrame and scaling, it won't capture additional layers such as Stage3D.
  • On desktop realtime and non-realtime, if you specify target DisplayObject(or Context3D), FW will capture only that target.
  • Note that on desktop you can still capture both Stage3D + display objects on top, but you'll need to call capture twice - once with Context3D target, another time without arguments to capture the Flash stage. You must also enable stage3DWithMC to make sure the frame is not sent to the encoder after capturing Stage3D but only after the subsequent capture() call, where you capture the Flash stage on top.

    Parameters

    target:* (default = null) — the target to capture, this can be null(the default), which means fullscreen, DisplayObject or Stage3D.

    See also

    captureMC()method 
    public function captureMC(MC:DisplayObject):void
    Deprecated: Use capture() method instead with DisplayObject as argument

    Parameters

    MC:DisplayObject

    captureStage3D()method 
    public function captureStage3D(c:Context3D, flushToEncoder:Boolean = true):void
    Deprecated: Use capture() method instead with Context3D as argument

    Parameters

    c:Context3D
     
    flushToEncoder:Boolean (default = true)

    configureRAMGuard()method 
    public function configureRAMGuard(RAMadjusterFPSDivider:Number = 2, RAMadjusterTolerance:Number = 1.5):void

    Configure the RAM guard for FW Flash. This lowers the encoder FPS dynamically based on RAM usage. Only works in Flash Player currently.

    Parameters

    RAMadjusterFPSDivider:Number (default = 2) — How much the fps drops if we get over a certain thresold.
     
    RAMadjusterTolerance:Number (default = 1.5) — A multiplier - how much over the thresold can we go before RAM guard kicks in and slashes the fps. The default is 1.5, which means 1.5x times over max.

    dispose()method 
    public function dispose():void

    Forcibly dispose the ANE. Do not call this in case you want to use the extension again. FW deallocates resources after finishing each recording, dispose won't do nothing except disposing the extension context.

    finish()method 
    public function finish():void

    Finish the recording. This will cause STATUS_FINISHED to be fired after finishing.

    See also

    forceFramedropMode()method 
    public function forceFramedropMode(framedropMode:int):void

    Force framedrop mode.

    Parameters

    framedropMode:int — the framedrop mode.

    See also

    forcePTSMode()method 
    public function forcePTSMode(ptsMode:int):void

    Force PTS calculatin mode.

    Parameters

    ptsMode:int — the pts mode.

    See also

    getEncodingProgress()method 
    public function getEncodingProgress():Number

    Get encoding progress.

    Returns
    Number — returns a number from 0 to 1 indicating the encoding progress.
    getInstance()method 
    public static function getInstance(parent:Sprite = null, domainMemory:int = 0):FWVideoEncoder

    Get the FW encoder instance. Always use this before doing anything else with FW.

    Parameters

    parent:Sprite (default = null) — The parent sprite which must contain stage reference(stage != null).
     
    domainMemory:int (default = 0) — Only for Flash Player, allows to specify domain memory amount to preallocate.

    Returns
    FWVideoEncoder
    getVideo()method 
    public function getVideo():ByteArray

    Get the ByteArray containing the encoded video.

    Returns
    ByteArray — the video.
    iOS_captureFullscreen()method 
    public function iOS_captureFullscreen(waitForRendering:Boolean = false):void
    Deprecated: Use capture() method instead null as argument

    Parameters

    waitForRendering:Boolean (default = false)

    iOS_ReplayKitAvailable()method 
    public function iOS_ReplayKitAvailable():int

    Returns
    int
    iOS_ReplayKitDiscard()method 
    public function iOS_ReplayKitDiscard():int

    Returns
    int
    iOS_ReplayKitIsRecording()method 
    public function iOS_ReplayKitIsRecording():int

    Returns
    int
    iOS_ReplayKitPreview()method 
    public function iOS_ReplayKitPreview():int

    Returns
    int
    iOS_ReplayKitStart()method 
    public function iOS_ReplayKitStart(recordMicrophone:int = 0):int

    Parameters

    recordMicrophone:int (default = 0)

    Returns
    int
    iOS_ReplayKitStop()method 
    public function iOS_ReplayKitStop():int

    Returns
    int
    iOS_startAudioMix()method 
    public function iOS_startAudioMix(filename:String, duration:Number):void

    Only for iOS - alternative to addSoundtrack. This has the advantage of not using "extract" method which is very slow. It mixes in mp3 in the post-processing phase.

    Parameters

    filename:String — the name of the mp3 we want to mix in.
     
    duration:Number — duration of the mp3 in seconds (currently needed)

    iOS_stopAudioMix()method 
    public function iOS_stopAudioMix(filename:String):void

    Only for iOS - stop audio mix added before. This can be used if you don't know when you want to stop the audio mix. At the time of calling this method the mix will be stopped.

    Parameters

    filename:String

    load()method 
    public function load(pathToBridge:String):void

    Load the encoder. After getInstance, always do this. Dispatches STATUS_READY when loaded. In reality, this does nothing on mobile, but in Flash Player, this loads the encoder SWF. So if you want to keep your code crossplatform include this line and listen for the "ready" event.

    Parameters

    pathToBridge:StringOnly matters in Flash, not AIR. Path to the SWF the Flash Player FW is using.

    See also

    playVideo()method 
    public function playVideo(x:Number, y:Number, width:Number, height:Number, useVideoTexture:Boolean = false, videoContext3D:Context3D = null):void

    Play the last recorded video using one of the playing methods depending on the platform. It places the container on the coordinates you specify, in the dimensions you specify and performs any scaling on the video. This will automatically select the best playing method based on the current platform. Only works for MP4 files(not OGV). In Flash, this tries to play the file directly from ByteArray by stripping away MP4 container, replacing it with FLV container. This might have some issues, but should work in general. On mobile, the video is replayed from the last recorded temporary file, using VideoTexture. On desktop, the video is replayed from the last recorded temporary file, using Video.

    Parameters

    x:Number
     
    y:Number
     
    width:Number
     
    height:Number
     
    useVideoTexture:Boolean (default = false)
     
    videoContext3D:Context3D (default = null)

    saveToGallery()method 
    public function saveToGallery(filename:String, album:String):void

    Save video to gallery / camera roll. Only for mobile. This will automatically handle the permissions as well. The permission dialog will be popped up in case you didn't handle this yourself earlier and your app doesn't have gallery / camera roll permissions granted.

    Parameters

    filename:String — the internal video filename, if left empty it will use "video.mp4".
     
    album:String — the album name, if left empty it will use the default album / no album.

    setAudioRealtime()method 
    public function setAudioRealtime(r:Boolean):void

    Flash Player only - experimental audio recording mode, which uses clock timestamps mixed with monotonic PTS to record audio. Try this if you're having audio sync difficulties in Flash Player.

    Parameters

    r:Boolean — set the mode to true or false.

    setCaptureRectangle()method 
    public function setCaptureRectangle(x:int, y:int, w:int, h:int, color:int = 0xFF00FFFF, mode:int = 0):void

    Set capture rectangle on mobile, in realtime. Supported only on mobile(iOS and Android), in non-realtime mode. This must be called before encoder load() method. After setting the capture rectangle, do not set video dimensions, they will be set automatically. Also, do not use any arguments in capture method - just use as if you were capturing fullscreen.

    Parameters

    x:int — The top left corner x of the capture rectangle.
     
    y:int — The top left corner y of the capture rectangle.
     
    w:int — The width of the capture rectangle, in AIR's coordinate system.
     
    h:int — The height of the capture rectangle, in AIR's coordinate system.
     
    color:int (default = 0xFF00FFFF) — The color of the visual markers, when using the visual capture method.
     
    mode:int (default = 0) — One of the capture modes, either visual or calculate.

    See also

    setDimensions()method 
    public function setDimensions(w:Number, h:Number):void

    Set video dimensions. Try to set the dimensions to multiplies of 16, especially on mobile, and maximum Full HD (1920 x 1080). This is not strictly needed but you'll be warned if you don't set as recommended.

    Parameters

    w:Number — video height
     
    h:Number — video width.

    setFps()method 
    public function setFps(fps:int):void

    Set video fps. If fps is lower than stage fps frames will be automatically dropped only if framedrop is on.

    Parameters

    fps:int — frames per second of the video.

    setLogging()method 
    public function setLogging(level:int):void

    Set logging level.

    Parameters

    level:int — the logging level.

    See also

    setRealtime()method 
    public function setRealtime(r:Boolean):void

    Set realtime mode. This affects both PTS calculation and framedrop modes. On mobile it also affects whenever OpenGL capture will be used. In realtime mode on mobile, OpenGL capture(which is the fastest method to capture AIR content) is used.

    Parameters

    r:Boolean — realtime mode true / false.

    setRecordAudio()method 
    public function setRecordAudio(mode:String):void

    Set audio mode. Warning: Audio is not magically recorded - you need to supply audio data, except for microphone where FW tries to "magically" record it using a method depending on platform.

    Parameters

    mode:String

    See also

    start()method 
    public function start(fps:int = 20, _recordAudio:String = audioOff, _realtime:Boolean = true, w:Number = 0, h:Number = 0, bitrate:int = 1000000, audio_sample_rate:int = 44100, audio_bit_rate:int, keyframe_freq:Number = 0, frameOffset:Point = null):void

    Start FW recording. You can currently set many of those params in separate methods - if you do, you don't need to set them again in start.

    Parameters

    fps:int (default = 20) — fps of the video.
     
    _recordAudio:String (default = audioOff) — one of the audio recording modes.
     
    _realtime:Boolean (default = true) — do you wish to recording in realtime.
     
    w:Number (default = 0) — video width.
     
    h:Number (default = 0) — video height.
     
    bitrate:int (default = 1000000) — requested video bitrate.
     
    audio_sample_rate:int (default = 44100) — requested audio sample rate.
     
    audio_bit_rate:int (default = NaN) — keyframe frequency, for advanced users only.
     
    keyframe_freq:Number (default = 0) — for desktop and advanced users only, can shift the captured DisplayObject by this offset in the final video.
     
    frameOffset:Point (default = null)

    See also

    Constant Detail
    AUDIO_MICROPHONEConstant
    public static const AUDIO_MICROPHONE:String = audioMicrophone

    Audio recording from microphone. Only microphone audio is recorded. On mobile this might trigger native microphone recording, on desktop only uses Flash / AIR Microphone class for recording.

    See also

    AUDIO_MONOConstant 
    public static const AUDIO_MONO:String = audioMono

    Audio recording in MONO. Is prepared for floating point 1-channel PCM data, such as data from microphone.

    See also

    AUDIO_OFFConstant 
    public static const AUDIO_OFF:String = audioOff

    // public static const STATUS_CAPTURE_AUTHORIZED:String = "capture_authorized"; // public static const STATUS_CAPTURE_DENIED:String = "capture_denied"; / Audio recording is OFF. Doesn't record any audio and internally avoids any audio code paths. Also useful to try this in case of issues / bugs, to rule out anything audio related.

    See also

    AUDIO_STEREOConstant 
    public static const AUDIO_STEREO:String = audioStereo

    Audio recording is STEREO. Is prepared for floating point 2-channel PCM data, such as data from FWSoundMixer, or Sound class.

    See also

    CAPTURERECT_MODE_CALCULATEConstant 
    public static const CAPTURERECT_MODE_CALCULATE:int = 0

    Calculate the capture rectangle This mode works only with NO_SCALE stage scaling mode and TOP_LEFT stage alignment.

    See also

    CAPTURERECT_MODE_VISUALConstant 
    public static const CAPTURERECT_MODE_VISUAL:int = 1

    Measure the capture rectangle with visual guides. This mode works with all stage scaling and alignment modes, but might not be 100% accurate. Specifically, the resuling capture rectangle is aligned to multiplies of 4 and the pixels which are automatically rendered need to be measured. However, sometimes the pixels might get scaled up/down too much.

    See also

    FRAMEDROP_AUTOConstant 
    public static const FRAMEDROP_AUTO:int = 0

    Framedrop mode auto. Causes FlashyWrappers to automatically determine if framedrop should be on and off (the default).

    See also

    FRAMEDROP_OFFConstant 
    public static const FRAMEDROP_OFF:int = 1

    Framedrop mode off. Doesn't drop any frames, non-realtime uses this by default.

    See also

    FRAMEDROP_ONConstant 
    public static const FRAMEDROP_ON:int = 2

    Framedrop mode on. Drops frames whenever they are not needed, realtime mode uses this by default.

    See also

    LOGGING_BASICConstant 
    public static const LOGGING_BASIC:int = 0

    Basic logging. This is the default, it logs only basic things, not useful for bug reports.

    See also

    LOGGING_VERBOSEConstant 
    public static const LOGGING_VERBOSE:int = 1

    Verbose logging. This is meant only for bug reports / debugging, do not use in release.

    See also

    PLATFORM_ANDROIDConstant 
    public static const PLATFORM_ANDROID:String = ANDROID

    Android platform

    PLATFORM_FLASHConstant 
    public static const PLATFORM_FLASH:String = FLASH

    Flash Player platform

    PLATFORM_IOSConstant 
    public static const PLATFORM_IOS:String = IOS

    iOS platform

    PLATFORM_MACConstant 
    public static const PLATFORM_MAC:String = MAC

    Mac platform

    PLATFORM_TYPE_DESKTOPConstant 
    public static const PLATFORM_TYPE_DESKTOP:String = DESKTOP

    Desktop platform

    PLATFORM_TYPE_MOBILEConstant 
    public static const PLATFORM_TYPE_MOBILE:String = MOBILE

    Mobile platform

    PLATFORM_WINDOWSConstant 
    public static const PLATFORM_WINDOWS:String = WINDOWS

    Windows platform

    PTS_AUTOConstant 
    public static const PTS_AUTO:int = 0

    Automatic PTS calculation. Determines whenever to use mono or realtime PTS - the default.

    See also

    PTS_MONOConstant 
    public static const PTS_MONO:int = 1

    Mono PTS calculation. The PTS are increased in monotonic steps - its the default for non-realtime mode.

    See also

    PTS_REALTIMEConstant 
    public static const PTS_REALTIME:int = 2

    Realtime PTS calculation. The PTS are based on clock - its the default for realtime mode.

    See also

    STATUS_FINISHEDConstant 
    public static const STATUS_FINISHED:String = encoded

    Use this when listening for FW status events, indicates FW video was encoded and is ready to be saved / worked with.

    See also

    STATUS_GALLERY_FAILEDConstant 
    public static const STATUS_GALLERY_FAILED:String = gallery_failed

    Use this when listening for FW status events, only for mobile. This is fired when video was not saved. The reason might be permissions, not enough storage space or wrong video format (resolution perhaps).

    See also

    STATUS_GALLERY_SAVEDConstant 
    public static const STATUS_GALLERY_SAVED:String = gallery_saved

    Use this when listening for FW status events, indicates FW video was saved to gallery / camera roll. Only on mobile.

    See also

    STATUS_READYConstant 
    public static const STATUS_READY:String = ready

    Use this when listening for FW status events, indicates FW was loaded and is ready to start.

    See also

    STATUS_STARTEDConstant 
    public static const STATUS_STARTED:String = started

    Use this when listening for FW status events, indicates FW was started and is ready to record.

    See also

    STATUS_STOPPEDConstant 
    public static const STATUS_STOPPED:String = stopped

    Use this when listening for FW status events, indicates FW encoding was forced to stop, for example when the app was suspended. You will need to make your app UI react appropriately, as if you finished recording. Currently used only on mobile.

    See also