본문 바로가기
GameMaker강좌[GMS2]/GMS2기초강좌

[게임메이커 강좌-기초][GMS2] 게임메이커에서 비디오 재생-2 : 비디오 제어 함수

by 타락카얀 2024. 3. 22.
728x90

 

 

GAME MAKER 강좌

 

KAYAN

 

 

 

 

 

 

◈ 비디오 제어 함수들

 

(▲ 비디오 파일 재생)

 

아래 함수들은 비디오를 세부적으로 제어할 수 있는 함수들입니다.


   ◎ video_set_volume(value) :볼륨조절 (0~1, 0 : 최소 1 : 최대)
   ◎ video_get_volume( ) : 현재 볼륨 반환 (0~1)


   ◎ video_pause( ) : 일시정지
   ◎ video_resume( ) : 재생 재개


   ◎ video_enable_loop(enable) : 비디오 반복재생(0 : 반복재생 안함 1 : 반복재생)
   ◎ video_is_looping() : 반복 재생 여부 반환 (0 또는 1)


   ◎ video_seek_to(time) : 탐색(밀리 초. 1/1000 초)


   ◎ video_get_duration( ) : 비디오의 길이를 밀리초 단위로 반환
   ◎ video_get_position( ) : 비디오의 현재 위치를 밀리초 단위로 반환


   ◎ video_get_status( ) : 비디오의 상태를 반환
                            - video_status_closed : 현재 로드된 비디오가 없거나 비디오가 video_close( )로 종료
                            - video_status_preparing : 비디오가 현재 준비 중이거나 아직 재생을 시작하지 않음
                            - video_status_playing : 비디오가 현재 재생 중임
                            - video_status_paused : 비디오가 일시정지 됨


   ◎ video_get_format( ) : 비디오의 색상 형식을 반환
                           - video_format_rgba : 비디오 서피스는 RGBA 색상 모델을 사용
                           - video_format_yuv : 비디오 서피스는 YUV 색상 모델을 사용


 

※ Windows, macOS, Opera GX, Android, iOS 및 HTML5는 비디오에 RGBA 모델을 사용합니다.

 

 

먼저 아래 함수는 비디오의 볼륨을 조절할 수 있습니다.


   ◎ video_set_volume(value) :볼륨조절 (0~1, 0 : 최소 1 : 최대)

 

값은 0~1 사이의 값을 지정할 수 있습니다.

 

예)


   video_open("splash.mp4");
   video_set_volume(0.5);


 

 

다음 함수로 현재 볼륨의 값을 확인할 수 있습니다.


   ◎ video_get_volume( ) : 현재 볼륨 반환 (0~1)

 

예)


   /// Step 이벤트
   var _video_volume = video_get_volume( );
   
   if (_video_volume < 1) {
       _video_volume += 0.02;
       video_set_volume(_video_volume);
   }


 

 

다음 함수는 비디오를 일시정지, 또는 재생 재개할 수 있습니다.


   ◎ video_pause( ) : 일시정지
   ◎ video_resume( ) : 재생 재개


 

예)


   var _status = video_get_status();
   
   if (keyboard_check_pressed(vk_space))
   {
       if (_status == video_status_playing)
       {
           video_pause( );
       }
       else if (status == video_status_paused)
       {
           video_resume( );
       }
   }


 

 

아래 함수는 비디오를 반복 재생할 지를 설정할 수 있습니다.


   ◎ video_enable_loop(enable) : 비디오 반복재생(0 : 반복재생 안함 1 : 반복재생)

 

기본적으로 1번만 재생합니다.

 

예)


   video_open("Loading.mp4");
   video_enable_loop(true);


 

 

현재 비디오가 반복 재생 중인지를 체크할 수 있습니다.


   ◎ video_is_looping( ) : 반복 재생 여부 반환 (0 또는 1)

 

예)


   if (video_is_looping( )) {
       obj_player.control_enabled = false;
   }


 

 

다음 함수는 비디오에서 지정한 시간으로 이동 시킬 수 있습니다.


   ◎ video_seek_to(time) : 탐색(밀리 초. 1/1000 초)

 

시간은 밀리초(1/1000 초)로 지정합니다.

예를들어 1초를 지정할 경우 1000을 지정합니다.

 

예)


   if (keyboard_check_pressed(vk_right))
   {
       var _video_position = video_get_position( );
       _video_position += 2000;


       if (_video_position < video_get_duration( ))
       {
           video_seek_to(_video_position);
       }
       else
       {
           video_close( );
       }
   }


 

 

아래 함수로 비디오의 전체 길이와 재생중인 현재 위치를 알아볼 수 있습니다.


   ◎ video_get_duration( ) : 비디오의 길이를 밀리초 단위로 반환
   ◎ video_get_position( ) : 비디오의 현재 위치를 밀리초 단위로 반환


 

단위는 밀리초(1/1000)로 반환합니다.

 

예)


   if (keyboard_check_pressed(vk_right))
   {
       var _video_position = video_get_position( );
       _video_position += 2000;
   
       if (_video_position < video_get_duration( ))
       {
           video_seek_to(_video_position);
       }
       else
       {
           video_close( );
       }
   }


 

 

아래 함수로 비디오의 현재 상태를 알아볼 수 있습니다.


   ◎ video_get_status( ) : 비디오의 상태를 반환

                            - video_status_closed : 현재 로드된 비디오가 없거나 비디오가 video_close( )로 종료
                            - video_status_preparing : 비디오가 현재 준비 중이거나 아직 재생을 시작하지 않음
                            - video_status_playing : 비디오가 현재 재생 중임
                            - video_status_paused : 비디오가 일시정지 됨


 

 

예)


   var _status = video_get_status();
   
   if (keyboard_check_pressed(vk_space))
   {
       if (_status == video_status_playing)
       {
           video_pause( );
       }
       else if (status == video_status_paused)
       {
           video_resume( );
       }
   }


 

아래 함수는 비디오의 색상 형식을 알아볼 수 있습니다.


   ◎ video_get_format( ) : 비디오의 색상 형식을 반환
                           - video_format_rgba : 비디오 서피스는 RGBA 색상 모델을 사용
                           - video_format_yuv : 비디오 서피스는 YUV 색상 모델을 사용


 

※ Windows, macOS, Opera GX, Android, iOS 및 HTML5는 비디오에 RGBA 모델을 사용합니다.

 

 

 

 

 

 

 

 

 

300x250

댓글