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

407 lines
15 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/VideoStreamPlayer.xml.
.. _class_VideoStreamPlayer:
VideoStreamPlayer
=================
**Inherits:** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
A control used for video playback.
.. rst-class:: classref-introduction-group
Description
-----------
A control used for playback of :ref:`VideoStream<class_VideoStream>` resources.
Supported video formats are `Ogg Theora <https://www.theora.org/>`__ (``.ogv``, :ref:`VideoStreamTheora<class_VideoStreamTheora>`) and any format exposed via a GDExtension plugin.
\ **Warning:** On Web, video playback *will* perform poorly due to missing architecture-specific assembly optimizations.
.. rst-class:: classref-introduction-group
Tutorials
---------
- :doc:`Playing videos <../tutorials/animation/playing_videos>`
.. rst-class:: classref-reftable-group
Properties
----------
.. table::
:widths: auto
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`int<class_int>` | :ref:`audio_track<class_VideoStreamPlayer_property_audio_track>` | ``0`` |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`bool<class_bool>` | :ref:`autoplay<class_VideoStreamPlayer_property_autoplay>` | ``false`` |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`int<class_int>` | :ref:`buffering_msec<class_VideoStreamPlayer_property_buffering_msec>` | ``500`` |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`StringName<class_StringName>` | :ref:`bus<class_VideoStreamPlayer_property_bus>` | ``&"Master"`` |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`bool<class_bool>` | :ref:`expand<class_VideoStreamPlayer_property_expand>` | ``false`` |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`bool<class_bool>` | :ref:`loop<class_VideoStreamPlayer_property_loop>` | ``false`` |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`bool<class_bool>` | :ref:`paused<class_VideoStreamPlayer_property_paused>` | ``false`` |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`float<class_float>` | :ref:`speed_scale<class_VideoStreamPlayer_property_speed_scale>` | ``1.0`` |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`VideoStream<class_VideoStream>` | :ref:`stream<class_VideoStreamPlayer_property_stream>` | |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`float<class_float>` | :ref:`stream_position<class_VideoStreamPlayer_property_stream_position>` | |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`float<class_float>` | :ref:`volume<class_VideoStreamPlayer_property_volume>` | |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
| :ref:`float<class_float>` | :ref:`volume_db<class_VideoStreamPlayer_property_volume_db>` | ``0.0`` |
+---------------------------------------+--------------------------------------------------------------------------+---------------+
.. rst-class:: classref-reftable-group
Methods
-------
.. table::
:widths: auto
+-----------------------------------+------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_stream_length<class_VideoStreamPlayer_method_get_stream_length>`\ (\ ) |const| |
+-----------------------------------+------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_stream_name<class_VideoStreamPlayer_method_get_stream_name>`\ (\ ) |const| |
+-----------------------------------+------------------------------------------------------------------------------------------+
| :ref:`Texture2D<class_Texture2D>` | :ref:`get_video_texture<class_VideoStreamPlayer_method_get_video_texture>`\ (\ ) |const| |
+-----------------------------------+------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_playing<class_VideoStreamPlayer_method_is_playing>`\ (\ ) |const| |
+-----------------------------------+------------------------------------------------------------------------------------------+
| |void| | :ref:`play<class_VideoStreamPlayer_method_play>`\ (\ ) |
+-----------------------------------+------------------------------------------------------------------------------------------+
| |void| | :ref:`stop<class_VideoStreamPlayer_method_stop>`\ (\ ) |
+-----------------------------------+------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Signals
-------
.. _class_VideoStreamPlayer_signal_finished:
.. rst-class:: classref-signal
**finished**\ (\ ) :ref:`🔗<class_VideoStreamPlayer_signal_finished>`
Emitted when playback is finished.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Property Descriptions
---------------------
.. _class_VideoStreamPlayer_property_audio_track:
.. rst-class:: classref-property
:ref:`int<class_int>` **audio_track** = ``0`` :ref:`🔗<class_VideoStreamPlayer_property_audio_track>`
.. rst-class:: classref-property-setget
- |void| **set_audio_track**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_audio_track**\ (\ )
The embedded audio track to play.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_autoplay:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **autoplay** = ``false`` :ref:`🔗<class_VideoStreamPlayer_property_autoplay>`
.. rst-class:: classref-property-setget
- |void| **set_autoplay**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **has_autoplay**\ (\ )
If ``true``, playback starts when the scene loads.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_buffering_msec:
.. rst-class:: classref-property
:ref:`int<class_int>` **buffering_msec** = ``500`` :ref:`🔗<class_VideoStreamPlayer_property_buffering_msec>`
.. rst-class:: classref-property-setget
- |void| **set_buffering_msec**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_buffering_msec**\ (\ )
Amount of time in milliseconds to store in buffer while playing.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_bus:
.. rst-class:: classref-property
:ref:`StringName<class_StringName>` **bus** = ``&"Master"`` :ref:`🔗<class_VideoStreamPlayer_property_bus>`
.. rst-class:: classref-property-setget
- |void| **set_bus**\ (\ value\: :ref:`StringName<class_StringName>`\ )
- :ref:`StringName<class_StringName>` **get_bus**\ (\ )
Audio bus to use for sound playback.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_expand:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **expand** = ``false`` :ref:`🔗<class_VideoStreamPlayer_property_expand>`
.. rst-class:: classref-property-setget
- |void| **set_expand**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **has_expand**\ (\ )
If ``true``, the video scales to the control size. Otherwise, the control minimum size will be automatically adjusted to match the video stream's dimensions.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_loop:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **loop** = ``false`` :ref:`🔗<class_VideoStreamPlayer_property_loop>`
.. rst-class:: classref-property-setget
- |void| **set_loop**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **has_loop**\ (\ )
If ``true``, the video restarts when it reaches its end.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_paused:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **paused** = ``false`` :ref:`🔗<class_VideoStreamPlayer_property_paused>`
.. rst-class:: classref-property-setget
- |void| **set_paused**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_paused**\ (\ )
If ``true``, the video is paused.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_speed_scale:
.. rst-class:: classref-property
:ref:`float<class_float>` **speed_scale** = ``1.0`` :ref:`🔗<class_VideoStreamPlayer_property_speed_scale>`
.. rst-class:: classref-property-setget
- |void| **set_speed_scale**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_speed_scale**\ (\ )
The stream's current speed scale. ``1.0`` is the normal speed, while ``2.0`` is double speed and ``0.5`` is half speed. A speed scale of ``0.0`` pauses the video, similar to setting :ref:`paused<class_VideoStreamPlayer_property_paused>` to ``true``.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_stream:
.. rst-class:: classref-property
:ref:`VideoStream<class_VideoStream>` **stream** :ref:`🔗<class_VideoStreamPlayer_property_stream>`
.. rst-class:: classref-property-setget
- |void| **set_stream**\ (\ value\: :ref:`VideoStream<class_VideoStream>`\ )
- :ref:`VideoStream<class_VideoStream>` **get_stream**\ (\ )
The assigned video stream. See description for supported formats.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_stream_position:
.. rst-class:: classref-property
:ref:`float<class_float>` **stream_position** :ref:`🔗<class_VideoStreamPlayer_property_stream_position>`
.. rst-class:: classref-property-setget
- |void| **set_stream_position**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_stream_position**\ (\ )
The current position of the stream, in seconds.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_volume:
.. rst-class:: classref-property
:ref:`float<class_float>` **volume** :ref:`🔗<class_VideoStreamPlayer_property_volume>`
.. rst-class:: classref-property-setget
- |void| **set_volume**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_volume**\ (\ )
Audio volume as a linear value.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_property_volume_db:
.. rst-class:: classref-property
:ref:`float<class_float>` **volume_db** = ``0.0`` :ref:`🔗<class_VideoStreamPlayer_property_volume_db>`
.. rst-class:: classref-property-setget
- |void| **set_volume_db**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_volume_db**\ (\ )
Audio volume in dB.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Method Descriptions
-------------------
.. _class_VideoStreamPlayer_method_get_stream_length:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_stream_length**\ (\ ) |const| :ref:`🔗<class_VideoStreamPlayer_method_get_stream_length>`
The length of the current stream, in seconds.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_method_get_stream_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_stream_name**\ (\ ) |const| :ref:`🔗<class_VideoStreamPlayer_method_get_stream_name>`
Returns the video stream's name, or ``"<No Stream>"`` if no video stream is assigned.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_method_get_video_texture:
.. rst-class:: classref-method
:ref:`Texture2D<class_Texture2D>` **get_video_texture**\ (\ ) |const| :ref:`🔗<class_VideoStreamPlayer_method_get_video_texture>`
Returns the current frame as a :ref:`Texture2D<class_Texture2D>`.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_method_is_playing:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_playing**\ (\ ) |const| :ref:`🔗<class_VideoStreamPlayer_method_is_playing>`
Returns ``true`` if the video is playing.
\ **Note:** The video is still considered playing if paused during playback.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_method_play:
.. rst-class:: classref-method
|void| **play**\ (\ ) :ref:`🔗<class_VideoStreamPlayer_method_play>`
Starts the video playback from the beginning. If the video is paused, this will not unpause the video.
.. rst-class:: classref-item-separator
----
.. _class_VideoStreamPlayer_method_stop:
.. rst-class:: classref-method
|void| **stop**\ (\ ) :ref:`🔗<class_VideoStreamPlayer_method_stop>`
Stops the video playback and sets the stream position to 0.
\ **Note:** Although the stream position will be set to 0, the first frame of the video stream won't become the current frame.
.. |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.)`