Files
godot-docs/classes/class_cameraserver.rst
2025-06-07 03:33:02 +00:00

234 lines
8.5 KiB
ReStructuredText

:github_url: hide
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/CameraServer.xml.
.. _class_CameraServer:
CameraServer
============
**Inherits:** :ref:`Object<class_Object>`
Server keeping track of different cameras accessible in Godot.
.. rst-class:: classref-introduction-group
Description
-----------
The **CameraServer** keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone.
It is notably used to provide AR modules with a video feed from the camera.
\ **Note:** This class is currently only implemented on Linux, Android, macOS, and iOS. On other platforms no :ref:`CameraFeed<class_CameraFeed>`\ s will be available. To get a :ref:`CameraFeed<class_CameraFeed>` on iOS, the camera plugin from `godot-ios-plugins <https://github.com/godotengine/godot-ios-plugins>`__ is required.
.. rst-class:: classref-reftable-group
Properties
----------
.. table::
:widths: auto
+-------------------------+-----------------------------------------------------------------------+-----------+
| :ref:`bool<class_bool>` | :ref:`monitoring_feeds<class_CameraServer_property_monitoring_feeds>` | ``false`` |
+-------------------------+-----------------------------------------------------------------------+-----------+
.. rst-class:: classref-reftable-group
Methods
-------
.. table::
:widths: auto
+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`add_feed<class_CameraServer_method_add_feed>`\ (\ feed\: :ref:`CameraFeed<class_CameraFeed>`\ ) |
+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`CameraFeed<class_CameraFeed>`\] | :ref:`feeds<class_CameraServer_method_feeds>`\ (\ ) |
+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`CameraFeed<class_CameraFeed>` | :ref:`get_feed<class_CameraServer_method_get_feed>`\ (\ index\: :ref:`int<class_int>`\ ) |
+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_feed_count<class_CameraServer_method_get_feed_count>`\ (\ ) |
+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_feed<class_CameraServer_method_remove_feed>`\ (\ feed\: :ref:`CameraFeed<class_CameraFeed>`\ ) |
+------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Signals
-------
.. _class_CameraServer_signal_camera_feed_added:
.. rst-class:: classref-signal
**camera_feed_added**\ (\ id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_CameraServer_signal_camera_feed_added>`
Emitted when a :ref:`CameraFeed<class_CameraFeed>` is added (e.g. a webcam is plugged in).
.. rst-class:: classref-item-separator
----
.. _class_CameraServer_signal_camera_feed_removed:
.. rst-class:: classref-signal
**camera_feed_removed**\ (\ id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_CameraServer_signal_camera_feed_removed>`
Emitted when a :ref:`CameraFeed<class_CameraFeed>` is removed (e.g. a webcam is unplugged).
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Enumerations
------------
.. _enum_CameraServer_FeedImage:
.. rst-class:: classref-enumeration
enum **FeedImage**: :ref:`🔗<enum_CameraServer_FeedImage>`
.. _class_CameraServer_constant_FEED_RGBA_IMAGE:
.. rst-class:: classref-enumeration-constant
:ref:`FeedImage<enum_CameraServer_FeedImage>` **FEED_RGBA_IMAGE** = ``0``
The RGBA camera image.
.. _class_CameraServer_constant_FEED_YCBCR_IMAGE:
.. rst-class:: classref-enumeration-constant
:ref:`FeedImage<enum_CameraServer_FeedImage>` **FEED_YCBCR_IMAGE** = ``0``
The `YCbCr <https://en.wikipedia.org/wiki/YCbCr>`__ camera image.
.. _class_CameraServer_constant_FEED_Y_IMAGE:
.. rst-class:: classref-enumeration-constant
:ref:`FeedImage<enum_CameraServer_FeedImage>` **FEED_Y_IMAGE** = ``0``
The Y component camera image.
.. _class_CameraServer_constant_FEED_CBCR_IMAGE:
.. rst-class:: classref-enumeration-constant
:ref:`FeedImage<enum_CameraServer_FeedImage>` **FEED_CBCR_IMAGE** = ``1``
The CbCr component camera image.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Property Descriptions
---------------------
.. _class_CameraServer_property_monitoring_feeds:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **monitoring_feeds** = ``false`` :ref:`🔗<class_CameraServer_property_monitoring_feeds>`
.. rst-class:: classref-property-setget
- |void| **set_monitoring_feeds**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_monitoring_feeds**\ (\ )
If ``true``, the server is actively monitoring available camera feeds.
This has a performance cost, so only set it to ``true`` when you're actively accessing the camera.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Method Descriptions
-------------------
.. _class_CameraServer_method_add_feed:
.. rst-class:: classref-method
|void| **add_feed**\ (\ feed\: :ref:`CameraFeed<class_CameraFeed>`\ ) :ref:`🔗<class_CameraServer_method_add_feed>`
Adds the camera ``feed`` to the camera server.
.. rst-class:: classref-item-separator
----
.. _class_CameraServer_method_feeds:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`CameraFeed<class_CameraFeed>`\] **feeds**\ (\ ) :ref:`🔗<class_CameraServer_method_feeds>`
Returns an array of :ref:`CameraFeed<class_CameraFeed>`\ s.
.. rst-class:: classref-item-separator
----
.. _class_CameraServer_method_get_feed:
.. rst-class:: classref-method
:ref:`CameraFeed<class_CameraFeed>` **get_feed**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_CameraServer_method_get_feed>`
Returns the :ref:`CameraFeed<class_CameraFeed>` corresponding to the camera with the given ``index``.
.. rst-class:: classref-item-separator
----
.. _class_CameraServer_method_get_feed_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_feed_count**\ (\ ) :ref:`🔗<class_CameraServer_method_get_feed_count>`
Returns the number of :ref:`CameraFeed<class_CameraFeed>`\ s registered.
.. rst-class:: classref-item-separator
----
.. _class_CameraServer_method_remove_feed:
.. rst-class:: classref-method
|void| **remove_feed**\ (\ feed\: :ref:`CameraFeed<class_CameraFeed>`\ ) :ref:`🔗<class_CameraServer_method_remove_feed>`
Removes the specified camera ``feed``.
.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
.. |void| replace:: :abbr:`void (No return value.)`