프로젝트 소개

Chewie는 하위 수준의 video_player 플러그인을 기반으로 구축된 Flutter 비디오 플레이어 UI 패키지입니다. 애플리케이션은 VideoPlayerController를 초기화 및 구성하고, 재생 옵션과 함께 ChewieController에 전달한 다음 Chewie 위젯을 표시합니다. README는 Chewie가 인터페이스 계층일 뿐임을 강조합니다. video_player에서 발생하는 재생 실패 및 PlatformException은 Chewie의 책임 범위를 벗어납니다. 두 컨트롤러 모두 사용 후 폐기되어야 합니다. 이 패키지는 Material, Material 데스크톱 및 Cupertino 컨트롤 스킨을 제공합니다. 문서화된 기능으로는 자동 재생, 반복 재생, 구성 가능한 시작 위치, 라이브 스트림 UI, 플레이스홀더, 사용자 정의 진행률 표시줄 색상, 사용자 정의 오버레이, 전체 화면 경로 및 방향 처리, 시스템 오버레이 관리, wakelock/절전 제어, 사용자 정의 오류 위젯 및 사용자 정의 컨트롤이 있습니다. 옵션 시트는 일반적으로 재생 속도와 자막을 표시하지만, 애플리케이션은 지역화된 OptionItem 항목을 추가하거나 optionsBuilder를 사용하여 시트를 완전히 대체할 수 있습니다. pauseOnBackgroundTap 옵션은 비디오 영역을 탭할 때 재생을 전환합니다. 자막은 인덱스, 시작, 종료 및 텍스트 필드가 있는 Subtitle 객체 목록으로 제공됩니다. 기본적으로 표시하거나, SubtitleStyle로 스타일을 지정하거나, subtitleBuilder를 통해 완전히 렌더링할 수 있습니다. Chewie는 굵게, 기울임꼴, 밑줄 및 글꼴 색상 태그와 같은 일반적인 인라인 WebVTT/SubRip 마크업을 렌더링할 수 있습니다. 지원되지 않는 큐 태그는 텍스트를 유지하면서 제거되고, 이스케이프는 디코딩되며, 구문 분석은 의도적으로 관대합니다. 마크업 렌더링은 비활성화할 수 있습니다. 챕터는 오름차순 시간순의 ChewieChapter 객체 목록으로 제공되어, 호버 또는 스크러빙 중에 챕터 제목이 있는 분할된 진행률 표시줄을 생성합니다. 캐스팅 지원은 캐스트 버튼, 기기 선택기, 캐스팅 오버레이, 로컬-원격 핸드오버 및 컨트롤 라우팅을 제공하지만, 의도적으로 Cast SDK 발신자는 포함하지 않습니다. 앱은 검색, 세션 상태 및 원격 재생을 위해 ChewieCastController를 구현하고, 수신기가 접근 가능한 URL이 있는 CastMedia를 제공합니다. 연결 시 Chewie는 로컬 재생을 일시 중지하고, 현재 위치에서 원격 미디어를 로드하며, 오버레이를 표시하고, 재생 명령을 라우팅합니다. 연결 해제는 이 과정을 역순으로 수행합니다. 예제에는 가짜 캐스트 컨트롤러가 포함되어 있으며, AirPlay 경로 선택기와 같은 경우를 위해 추가 컨트롤 막대 위젯을 추가할 수 있습니다. README는 Android, iOS 및 웹 플랫폼 배지를 나열하고, 예제 애플리케이션을 포함하며, 0.9.0 이전 버전에서의 마이그레이션을 문서화하고, 플랫폼 주의 사항을 언급합니다. Android video_player 버퍼링 상태 문제로 인해 컨트롤이 숨겨질 수 있으며 부분적인 해결 방법만 있고, iOS 시뮬레이터 재생은 충분히 최신 Flutter 버전이 필요합니다.