• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

섹션18 동영상플레이어 버그 질문

24.01.27 22:42 작성 조회수 144

0

  • 다른영상 불러와도 실행하기 전까지는 이전 영상의 음성이 계속 나옴니다.

  • 즉, 영상 실행 하는 상태에서 다른 영상 불러오고, 실행 버튼 누르지 않았는데 음성은 이전 영상 음성이 나옵니다. 버그 같아서 올립니다

  • 영상파일을 음성이 나오는 파일로 해보면 쉽게 알수 있습니다.

  • 2번째는

  • 음성이 아주 적게 들리고 있어서 음성 조절 기능

     을 넣코 싶은데 어딜 바꾸면 조을까요.

답변 2

·

답변을 작성해보세요.

0

안녕하세요!

힌트는 didChangeDependencies입니다.

didChangeDependencies가 실행 됐을때 동영상 플레이를 중지하는 코드를 작성해보세요!

감사합니다!

cdway님의 프로필

cdway

질문자

2024.01.29

void didChangeDependencies() {
  super.didChangeDependencies();
  print('____________________________didChangeDependencies()'); // 여기 출력!

  // 다른영상 불러와도 실행하기 전까지는 이전 영상의 음성이 나옴 방지
  videoController!.pause();
}

이렇케 해봤는데 안되네요, 어디가 잘못 한건가요.

 

  1.  

Ai 가 알려준 이전에 답변 보니까

@override
void didUpdateWidget(covariant CustomVideoPlayer oldWidget) {
  super.didUpdateWidget(oldWidget);

  if (oldWidget.video.path != widget.video.path) {
    // 다른영상 불러와도 실행하기 전까지는 이전 영상의 음성이 나옴 방지
    videoController!.pause();

    initializeController();
  }
}

요러케 하니까 되는데, 문제점은 없나요

3.

didChangeDependencies 에다 인수, if 문 넣으니 에러 나오네요. 문법 에러 같은데 여기다 인수 넣으면 안되는지요

 

 

제가 함수를 잘못 말씀드렸네요. didChangeDependencies는 의존하는 디펜던시가 변경됐을때 실행됩니다. (제 라이프사이클 섹션 참고 부탁드립니다). 지금 상황에는 didUpdateWidget이 맞습니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.27

안녕하세요, 인프런 AI 인턴입니다.

cdway님의 질문에 대해 유사한 상황을 겪은 다른 수강생의 질문과 그에 대한 지식공유자의 답변이 도움이 될 것 같습니다. 이전 영상의 음성이 새 영상을 재생하지 않았음에도 계속 나오는 문제는, 영상을 새로 불러올 때 기존의 비디오 플레이어 컨트롤러가 제대로 종료되지 않아서 발생할 수 있습니다.

비슷한 문제를 겪었던 수강생의 질문과 그에 대한 답변입니다:
- “올드_비디오 and 뉴_비디오 보이스 동시 출력됨( 비디오 재생중 onNewVideoPressed 호출시,)” - 이 질문에서는 새로운 영상을 선택할 때 이전 영상의 컨트롤러를 정지시키지 않아 발생하는 문제로 보입니다. 코드팩토리 지식공유자는 새 영상을 선택하는 함수에 컨트롤러를 정지하는 코드를 추가하는 것이 좋을 것 같다고 조언하였습니다.

음성 조절 기능에 대해서는 직접적인 질문이 없었지만, 일반적으로 비디오 플레이어의 볼륨 조절은 컨트롤러의 setVolume 메소드를 이용하여 조절할 수 있습니다. 예를 들어, videoPlayerController.setVolume(0.5);와 같이 설정하여 볼륨을 조절할 수 있습니다. Flutter의 video_player 패키지 문서에서는 볼륨 및 기타 컨트롤에 대한 자세한 정보를 제공할 수 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.