작성
·
353
1
답변 2
1
안녕하세요~
Controller가 dispose되지 않아서 생기는 문제로 보입니다.
새로운 동영상 선택하는 함수를 실행할때 controller로 동영상 재생을 정지하는 코드를 추가하시면 될 것 같습니다!
0
저도 같은 현상을 해결하기 위해 작업한 방법을 공유합니다.
didUpdateWidget을 통해 video가 다를경우 initializeController() 를 실행하기전에 videoController를 dispose했습니다.if(oldWidget.video.path != widget.video.path) {
videoController!.dispose();
initializeController();
}
코드팩토리님께서 controller가 dispose되지 않아서 생긴 문제라고 답변해주셔서, 그럼 dispose 하면 되겠구나 해서 위와 같이 작업을 했습니다.
Flutter 생명주기에 대한 이해가 제대로 없는 상태로 진행했기에 다른 문제가 생길 수 있을것 같습니다만, 소리 중복재생 문제는 해결이 됩니다.
혹시 이렇게 작업하여 문제가 생긴다면 알려주시면 감사하겠습니다.
안녕하세요.
dispose()를 실행하는것보다는 정지 함수를 실행해서 controller 값은 재활용하는게 좋아보입니다.
일반적으로 dispose()는 메모리에서 확실히 값을 삭제해야할때만 사용됩니다.