Преглед изворни кода

Merge pull request #11816 from terahxluna/video_player_set_stream_position

Add function set_stream_position to VideoPlayer. Closes #8727
Hein-Pieter van Braam пре 8 година
родитељ
комит
7c2cda72b8
3 измењених фајлова са 17 додато и 0 уклоњено
  1. 9 0
      doc/classes/VideoPlayer.xml
  2. 7 0
      scene/gui/video_player.cpp
  3. 1 0
      scene/gui/video_player.h

+ 9 - 0
doc/classes/VideoPlayer.xml

@@ -156,6 +156,15 @@
 				Set the video stream for this player.
 			</description>
 		</method>
+		<method name="set_stream_position">
+			<return type="void">
+			</return>
+			<argument index="0" name="position" type="float">
+			</argument>
+			<description>
+				Set the current position of the stream, in seconds.
+			</description>
+		</method>
 		<method name="set_volume">
 			<return type="void">
 			</return>

+ 7 - 0
scene/gui/video_player.cpp

@@ -285,6 +285,12 @@ float VideoPlayer::get_stream_position() const {
 	return playback->get_playback_position();
 };
 
+void VideoPlayer::set_stream_position(float p_position) {
+
+	if (playback.is_valid())
+		playback->seek(p_position);
+}
+
 Ref<Texture> VideoPlayer::get_video_texture() {
 
 	if (playback.is_valid())
@@ -327,6 +333,7 @@ void VideoPlayer::_bind_methods() {
 
 	ClassDB::bind_method(D_METHOD("get_stream_name"), &VideoPlayer::get_stream_name);
 
+	ClassDB::bind_method(D_METHOD("set_stream_position", "position"), &VideoPlayer::set_stream_position);
 	ClassDB::bind_method(D_METHOD("get_stream_position"), &VideoPlayer::get_stream_position);
 
 	ClassDB::bind_method(D_METHOD("set_autoplay", "enabled"), &VideoPlayer::set_autoplay);

+ 1 - 0
scene/gui/video_player.h

@@ -93,6 +93,7 @@ public:
 
 	String get_stream_name() const;
 	float get_stream_position() const;
+	void set_stream_position(float p_position);
 
 	void set_autoplay(bool p_enable);
 	bool has_autoplay() const;