[Flutter] 230117 구현 공부

tissue·2023년 1월 17일

Flutter

목록 보기
5/8
post-thumbnail

수강 강의: https://url.kr/inflearn
진도: 61강 / 127강

1. onReversePressed (뒤로가기) 버튼 구현

1-1. [VideoController.value.position]

VideoController.value.position : 현재 진행중인 영상의 position을 불러올 수 있다. (Duration)

1-2. [VideoController.seekTo(position)]

VideoController.seekTo(position) : positon에서부터 영상을 실행한다.

1-3. 구현 코드

currentPosition이 3초가 안된 경우라면 0초로 가도록하고, currentPosition이 3초 이상인 경우에는 3초 전으로 가도록 한다

void onReversePressed() {
	final currentPosition = videoConroller!.value.position; // 현재 position
    Duation position = Duration(); // 기본값을 0초로 설정. 따라서 3초 이하인 경우에는 0초로 돌아감
    if(currentPosition.inSeconds >3){
    position = currentPosition - Duration(seconds: 3);
    // Reverse 버튼이므로 '현재 position - 3초'를 해줌
    }
    videoConroller!.seekTo(position);
}

2. onForwardPressed (앞으로가기) 버튼 구현

2-1. [videoController!.value.duration]

videoController!.value.duration : 현재 영상의 최대값을 가져옴

2-2. 구현 코드

void onReversePressed() {
	final maxPosition = videoController!.value.duration; // 영상의 최대값을 가져옴
	final currentPosition = videoConroller!.value.position; // 현재 position
    Duation position = Duration();
    if((maxPosition - Duration(secondes: 3)).inSeconds > currentPosition.inSeconds){
    position = currentPosition + Duration(seconds: 3);
    // Reverse 버튼이므로 '현재 position + 3초'를 해줌
    }
    videoConroller!.seekTo(position);
}

3. Slider 구현

3-1. 영상 시작, 현재, 끝

max : videoController!.value.duration
min : Duation position = Duration()
current : VideoController.seekTo(position)
를 이용하여 처음, 현재, 끝의 position을 구하여 Slider에 구현한다

Slider가 움직일 때마다 변하는 값은 currentPosition이다.

3-2. Slider 바 움직이게 하기

videoController.addListener : 실행되고 있는 영상의 position이 바뀔 때마다 실행된다.
따라서, addListener가 될 때마다 Duration currentPosition = Duration();을 해주면 slider에 의해 값이 변경될 때마다 currentPosition도 같이 변경되도록 하게 할 수 있다.

profile
Better than Yesterday!

0개의 댓글