Class Camera

java.lang.Object
org.zkoss.zk.ui.AbstractComponent
org.zkoss.zk.ui.HtmlBasedComponent
org.zkoss.zul.impl.XulElement
org.zkoss.zkmax.zul.Camera
All Implemented Interfaces:
Serializable, Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.sys.ComponentCtrl

public class Camera extends org.zkoss.zul.impl.XulElement
A camera, use to record video and take snapshot, have a preview screen.

Only works for browsers supporting HTML5 video tag

Since:
8.6.0
Author:
charlesqiu
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrl

    Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

    org.zkoss.zk.ui.AbstractComponent.Children, org.zkoss.zk.ui.AbstractComponent.ForwardInfo, org.zkoss.zk.ui.AbstractComponent.TargetInfo
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Represent the pause state
    static final int
    Represent the resume state
    static final int
    Represent the start state
    static final int
    Represent the stop state

    Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    _zclass

    Fields inherited from interface org.zkoss.zk.ui.Component

    APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE

    Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

    AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the constraints.
    Returns the constraints in JSON String format.
    int
    Get the maximum record length limit, unit is "seconds".
    int
    Get the max size setting of upload video and snapshot, unit is "KB".
    Get the record video format, e.g., video/webm, video/mp4, video/ogg.
    Get the snapshot image format, e.g., image/png, image/jpeg.
    boolean
    Return whether to record sound while recording video.
    boolean
    Return whether camera is paused.
    boolean
    Return whether the preview screen is on.
    boolean
    Return whether camera is recording.
    boolean
    Return whether camera is stopped.
    void
    Pause recording.
    protected void
    renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer)
     
    void
    Ask user for permissions to get media stream from camera and microphone.
    void
    Resume recording.
    void
    service(org.zkoss.zk.au.AuRequest request, boolean everError)
     
    void
    setAudio(boolean audio)
    Set whether to record sound while recording video.
    void
    setConstraints(Map constraints)
    Sets the constraints, if not specify constraints, it will use {audio: isAudio(), video: true}.
    void
    Sets the constraints in JSON String format, if not specify constraints, it will use {audio: isAudio(), video: true}.
    void
    setLengthLimit(int lengthLimit)
    Set the maximum record length limit, unit is "seconds".
    void
    setMaxsize(int maxsize)
    Set the max size of upload video and snapshot, unit is "KB".
    void
    setPreviewRecord(boolean previewRecord)
    Set whether the preview screen is on.
    void
    setRecordFormat(String recordFormat)
    Set the record video format, e.g., video/webm, video/mp4, video/ogg.
    void
    setRecording(boolean recording)
    setRecording(true) means start or resume recording.
    void
    setSnapshotFormat(String snapshotFormat)
    Set the snapshot image format, e.g., image/png, image/jpeg.
    void
    Take a snapshot.
    void
    snapshot(double delay)
    Take a snapshot.
    void
    Start recording.
    void
    start(double delay)
    Start recording.
    void
    Stop recording.
    void
    Stop getting media stream from user's camera and microphone.

    Methods inherited from class org.zkoss.zul.impl.XulElement

    clone, getContext, getCtrlKeys, getPopup, getPropertyAccess, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes

    Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getSkeleton, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZclass, getZindex, getZIndex, removeSclass, removeSclass, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setSkeleton, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly

    Methods inherited from class org.zkoss.zk.ui.AbstractComponent

    addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, insertBefore, invalidate, isChildable, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onParentChanged, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • Camera

      public Camera()
  • Method Details

    • start

      public void start()
      Start recording.
    • start

      public void start(double delay)
      Start recording. When camera is off (never call $requestCamera() before), after calling this method, it will request camera permission from user at first, the delay parameter indicates the duration between user permission obtaining and record starting in seconds.
      Parameters:
      delay - the duration between user permission obtaining and record starting in seconds, only meaningful when camera is off
    • stop

      public void stop()
      Stop recording.
    • pause

      public void pause()
      Pause recording.
    • resume

      public void resume()
      Resume recording.
    • snapshot

      public void snapshot()
      Take a snapshot.
    • snapshot

      public void snapshot(double delay)
      Take a snapshot. When camera is off (never call $requestCamera() before), after calling this method, it will request camera permission from user at first, the delay parameter indicates the duration between user permission obtaining and taking snapshot in seconds.
      Parameters:
      delay - the duration between user permission obtaining and taking snapshot in seconds, only meaningful when camera is off
    • requestCamera

      public void requestCamera()
      Ask user for permissions to get media stream from camera and microphone.
    • stopStreaming

      public void stopStreaming()
      Stop getting media stream from user's camera and microphone.
    • service

      public void service(org.zkoss.zk.au.AuRequest request, boolean everError)
      Specified by:
      service in interface org.zkoss.zk.ui.sys.ComponentCtrl
      Overrides:
      service in class org.zkoss.zk.ui.HtmlBasedComponent
    • renderProperties

      protected void renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) throws IOException
      Overrides:
      renderProperties in class org.zkoss.zul.impl.XulElement
      Throws:
      IOException
    • isStopped

      public boolean isStopped()
      Return whether camera is stopped.
      Returns:
      true if the camera is stopped.
    • isPaused

      public boolean isPaused()
      Return whether camera is paused.
      Returns:
      true if the camera is paused.
    • isRecording

      public boolean isRecording()
      Return whether camera is recording.
      Returns:
      true if the camera is recording.
    • setRecording

      public void setRecording(boolean recording)
      setRecording(true) means start or resume recording. setRecording(false) means stop recording. If you want to pause recording, please invoke pause().

      Parameters:
      recording - whether to start recording.
    • isAudio

      public boolean isAudio()
      Return whether to record sound while recording video.

      Default: true

      Returns:
      true if record sound function is on.
    • setAudio

      public void setAudio(boolean audio)
      Set whether to record sound while recording video.
      Parameters:
      audio - whether to record sound.
    • getMaxsize

      public int getMaxsize()
      Get the max size setting of upload video and snapshot, unit is "KB". Refer to setMaxsize(int) for more details.

      Default: Configuration.getMaxUploadSize()

      Returns:
      the max size setting.
    • setMaxsize

      public void setMaxsize(int maxsize)
      Set the max size of upload video and snapshot, unit is "KB". Notice: Both video and snapshot files must smaller than max size, or nothing will upload.
      Parameters:
      maxsize - negative value is unlimited, 0 will use Configuration.getMaxUploadSize()
    • getLengthLimit

      public int getLengthLimit()
      Get the maximum record length limit, unit is "seconds". If recording seconds exceed length limit, recording will stop immediately.

      Default: 60

      Returns:
      maximum record length limit setting.
    • setLengthLimit

      public void setLengthLimit(int lengthLimit)
      Set the maximum record length limit, unit is "seconds". If recording seconds exceed length limit, recording will stop immediately.
      Parameters:
      lengthLimit - setting maximum record length limit.
    • isPreviewRecord

      public boolean isPreviewRecord()
      Return whether the preview screen is on. If you want to take a snapshot, must turn on preview screen, or nothing will happen.

      Default: true

      Returns:
      true if preview screen is on.
    • setPreviewRecord

      public void setPreviewRecord(boolean previewRecord)
      Set whether the preview screen is on. If you want to take a snapshot, must turn on preview screen, or nothing will happen.
      Parameters:
      previewRecord - whether to turn on preview screen.
    • getSnapshotFormat

      public String getSnapshotFormat()
      Get the snapshot image format, e.g., image/png, image/jpeg. If the requested type is invalid or unspecified, it will use image/png.

      Default: null.

      Returns:
      snapshot format
    • setSnapshotFormat

      public void setSnapshotFormat(String snapshotFormat)
      Set the snapshot image format, e.g., image/png, image/jpeg. If the requested type is invalid or unspecified, it will use image/png.
      Parameters:
      snapshotFormat - snapshot format
    • getRecordFormat

      public String getRecordFormat()
      Get the record video format, e.g., video/webm, video/mp4, video/ogg. If the requested type is invalid or unspecified, it will use video/webm.

      Default: null.

      Returns:
      recordFormat format
    • setRecordFormat

      public void setRecordFormat(String recordFormat)
      Set the record video format, e.g., video/webm, video/mp4, video/ogg. If the requested type is invalid or unspecified, it will use video/webm.
      Parameters:
      recordFormat - recordFormat format
    • getConstraints

      public Map getConstraints()
      Returns the constraints. About allowed constraints setting, see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints Default: null.
      Returns:
      the constraints
    • setConstraints

      public void setConstraints(Map constraints)
      Sets the constraints, if not specify constraints, it will use {audio: isAudio(), video: true}. About allowed constraints setting, see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints
      Parameters:
      constraints - the constraints
    • getConstraintsString

      public String getConstraintsString()
      Returns the constraints in JSON String format. About allowed constraints setting, see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints

      Default: null.

      Returns:
      the constraints in JSON String format
    • setConstraintsString

      public void setConstraintsString(String constraints)
      Sets the constraints in JSON String format, if not specify constraints, it will use {audio: isAudio(), video: true}. About allowed constraints setting, see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints
      Parameters:
      constraints - the constraints in JSON String format