Class Camera

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.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:
    Serialized Form
    • 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 int PAUSE
      Represent the pause state
      static int RESUME
      Represent the resume state
      static int START
      Represent the start state
      static int STOP
      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
      Camera()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Map getConstraints()
      Returns the constraints.
      java.lang.String getConstraintsString()
      Returns the constraints in JSON String format.
      int getLengthLimit()
      Get the maximum record length limit, unit is "seconds".
      int getMaxsize()
      Get the max size setting of upload video and snapshot, unit is "KB".
      java.lang.String getRecordFormat()
      Get the record video format, e.g., video/webm, video/mp4, video/ogg.
      java.lang.String getSnapshotFormat()
      Get the snapshot image format, e.g., image/png, image/jpeg.
      boolean isAudio()
      Return whether to record sound while recording video.
      boolean isPaused()
      Return whether camera is paused.
      boolean isPreviewRecord()
      Return whether the preview screen is on.
      boolean isRecording()
      Return whether camera is recording.
      boolean isStopped()
      Return whether camera is stopped.
      void pause()
      Pause recording.
      protected void renderProperties​(org.zkoss.zk.ui.sys.ContentRenderer renderer)  
      void requestCamera()
      Ask user for permissions to get media stream from camera and microphone.
      void resume()
      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​(java.util.Map constraints)
      Sets the constraints, if not specify constraints, it will use {audio: isAudio(), video: true}.
      void setConstraintsString​(java.lang.String constraints)
      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​(java.lang.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​(java.lang.String snapshotFormat)
      Set the snapshot image format, e.g., image/png, image/jpeg.
      void snapshot()
      Take a snapshot.
      void snapshot​(double delay)
      Take a snapshot.
      void start()
      Start recording.
      void start​(double delay)
      Start recording.
      void stop()
      Stop recording.
      void stopStreaming()
      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, 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, 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
    • Constructor Detail

      • Camera

        public Camera()
    • Method Detail

      • 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 java.io.IOException
        Overrides:
        renderProperties in class org.zkoss.zul.impl.XulElement
        Throws:
        java.io.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 java.lang.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​(java.lang.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 java.lang.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​(java.lang.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 java.util.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​(java.util.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 java.lang.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​(java.lang.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