요구사항정의서 » 이력 » 버전 1
이태훈, 2026/03/25 01:31
| 1 | 1 | 이태훈 | h1. 요구사항정의서 |
|---|---|---|---|
| 2 | |||
| 3 | h1. 동영상 플레이어 앱 요구사항 정의서 (SRS) |
||
| 4 | |||
| 5 | |_.항목|_.내용| |
||
| 6 | |프로젝트명|BBPlayer| |
||
| 7 | |프로그램명|BBPlayer| |
||
| 8 | |문서 버전|v1.0| |
||
| 9 | |작성일|2026년 03월 24일| |
||
| 10 | |작성자|페후 (이태훈)| |
||
| 11 | |상태|초안 (Draft)| |
||
| 12 | |||
| 13 | --- |
||
| 14 | |||
| 15 | h2. 1. 프로젝트 개요 |
||
| 16 | |||
| 17 | h3. 1.1 목적 |
||
| 18 | |||
| 19 | 기존 동영상 플레이어의 자막 오류 및 소리 문제를 개선하고, Windows 데스크탑과 Android 모바일 환경 모두에서 동작하는 크로스플랫폼 동영상 플레이어 앱을 개발한다. |
||
| 20 | |||
| 21 | h3. 1.2 범위 |
||
| 22 | |||
| 23 | * 지원 플랫폼: Windows 10 이상 (데스크탑), Android 8.0 이상 (APK) |
||
| 24 | * 개발 기술: Flutter (Dart), media_kit (FFmpeg 기반 코덱 처리) |
||
| 25 | * 주요 기능: 동영상 재생, 자막, 플레이리스트, 제스처 제어, 키보드 단축키 |
||
| 26 | |||
| 27 | h3. 1.3 용어 정의 |
||
| 28 | |||
| 29 | |_.용어|_.설명| |
||
| 30 | |media_kit|FFmpeg 기반의 Flutter 크로스플랫폼 미디어 재생 라이브러리| |
||
| 31 | |SRT / ASS|자막 파일 포맷 (SubRip / Advanced SubStation Alpha)| |
||
| 32 | |A-B 반복|사용자가 지정한 구간을 반복 재생하는 기능| |
||
| 33 | |PIP|Picture in Picture: 다른 앱 사용 중 영상을 작은 창으로 재생| |
||
| 34 | |Always on Top|플레이어 창이 항상 다른 창 위에 표시되는 기능| |
||
| 35 | |||
| 36 | --- |
||
| 37 | |||
| 38 | h2. 2. 기능 요구사항 |
||
| 39 | |||
| 40 | h3. 2.1 재생 컨트롤 |
||
| 41 | |||
| 42 | |_.ID|_.기능명|_.상세 설명|_.플랫폼| |
||
| 43 | |FR-01|재생 / 일시정지|영상을 재생하거나 일시정지한다. 컨트롤 바 버튼 및 단축키로 토글 가능|Windows / Android| |
||
| 44 | |FR-02|10초 앞으로 / 뒤로|버튼 클릭 시 현재 재생 위치에서 정확히 10초 이동|Windows / Android| |
||
| 45 | |FR-03|재생 진행바|영상 전체 길이 대비 현재 위치를 표시하며, 드래그하여 원하는 위치로 탐색 가능|Windows / Android| |
||
| 46 | |FR-04|재생 속도 조절|0.25x ~ 2.0x 범위에서 재생 속도 선택 가능 (0.25x 단위)|Windows / Android| |
||
| 47 | |FR-05|화면 비율 변경|16:9 / 4:3 / 화면 맞춤 / 전체화면 모드 선택 가능|Windows / Android| |
||
| 48 | |FR-06|항상 위 (Always on Top)|플레이어 창을 다른 모든 창 위에 항상 표시|Windows 전용| |
||
| 49 | |FR-07|이어보기|앱 종료 후 재실행 시 마지막 재생 위치부터 자동으로 이어서 재생|Windows / Android| |
||
| 50 | |FR-08|A-B 구간 반복|사용자가 시작점(A)과 종료점(B)을 지정하면 해당 구간을 무한 반복 재생|Windows / Android| |
||
| 51 | |||
| 52 | h3. 2.2 자막 |
||
| 53 | |||
| 54 | |_.ID|_.기능명|_.상세 설명|_.플랫폼| |
||
| 55 | |FR-09|자막 파일 불러오기|SRT, ASS 형식의 외부 자막 파일을 수동으로 불러와 적용|Windows / Android| |
||
| 56 | |FR-10|자막 싱크 조절|자막 표시 시간을 ±0.1초 단위로 수동 조정 가능|Windows / Android| |
||
| 57 | |FR-11|자막 ON/OFF|자막 표시 여부를 토글로 즉시 전환 가능|Windows / Android| |
||
| 58 | |FR-12|자막 스타일 커스터마이징|자막 글자 크기, 색상, 배경색을 사용자가 직접 설정 가능|Windows / Android| |
||
| 59 | |FR-13|자막 자동 검색|재생 중인 파일명을 기준으로 외부 자막 사이트에서 자막을 자동 검색하여 다운로드 제안|Windows / Android| |
||
| 60 | |||
| 61 | h3. 2.3 오디오 |
||
| 62 | |||
| 63 | |_.ID|_.기능명|_.상세 설명|_.플랫폼| |
||
| 64 | |FR-14|볼륨 조절|0~100% 범위의 볼륨을 슬라이더 또는 제스처/단축키로 조절|Windows / Android| |
||
| 65 | |FR-15|음소거|볼륨을 즉시 0으로 전환하며, 재토글 시 이전 볼륨으로 복원|Windows / Android| |
||
| 66 | |FR-16|오디오 트랙 선택|MKV 등 다중 오디오 트랙이 포함된 파일에서 원하는 트랙을 선택|Windows / Android| |
||
| 67 | |||
| 68 | h3. 2.4 플레이리스트 |
||
| 69 | |||
| 70 | |_.ID|_.기능명|_.상세 설명|_.플랫폼| |
||
| 71 | |FR-17|파일 추가|파일 탐색기를 통해 개별 파일 또는 폴더 단위로 영상 파일을 플레이리스트에 추가|Windows / Android| |
||
| 72 | |FR-18|드래그 앤 드롭|파일 탐색기에서 앱으로 파일을 드래그하여 추가 가능|Windows 전용| |
||
| 73 | |FR-19|이전 / 다음 영상 이동|플레이리스트 내 이전 또는 다음 영상으로 이동|Windows / Android| |
||
| 74 | |FR-20|반복 재생 모드|전체 반복 / 한 곡 반복 / 셔플 중 선택하여 재생 순서 제어|Windows / Android| |
||
| 75 | |FR-21|최근 재생 목록|최근 재생한 파일 히스토리를 저장하여 빠르게 다시 열기 가능|Windows / Android| |
||
| 76 | |FR-22|진행바 썸네일 미리보기|진행바에 마우스를 올리면 해당 위치의 영상 썸네일을 팝업으로 표시|Windows 전용| |
||
| 77 | |||
| 78 | h3. 2.5 제스처 제어 (Android 전용) |
||
| 79 | |||
| 80 | 모바일 환경에서 직관적인 조작을 위해 아래와 같은 터치 제스처를 지원한다. |
||
| 81 | |||
| 82 | |_.영역|_.제스처|_.동작| |
||
| 83 | |전체 화면|좌 → 우 스와이프|재생 위치 앞으로 이동 (스와이프 거리에 비례)| |
||
| 84 | |전체 화면|우 → 좌 스와이프|재생 위치 뒤로 이동 (스와이프 거리에 비례)| |
||
| 85 | |화면 왼쪽 절반|아래 → 위 스와이프|화면 밝기 증가| |
||
| 86 | |화면 왼쪽 절반|위 → 아래 스와이프|화면 밝기 감소| |
||
| 87 | |화면 오른쪽 절반|아래 → 위 스와이프|볼륨 증가| |
||
| 88 | |화면 오른쪽 절반|위 → 아래 스와이프|볼륨 감소| |
||
| 89 | |화면 중앙|싱글 탭|재생 / 일시정지 토글| |
||
| 90 | |||
| 91 | bq. 제스처 조작 중에는 화면 중앙에 오버레이 UI(아이콘 + 수치)를 표시하여 현재 값을 즉시 피드백한다. |
||
| 92 | |||
| 93 | h3. 2.6 키보드 단축키 (Windows 전용) |
||
| 94 | |||
| 95 | PC 환경에서 마우스 없이도 빠르게 조작할 수 있도록 아래의 단축키를 지원한다. |
||
| 96 | |||
| 97 | |_.단축키|_.동작|_.비고| |
||
| 98 | |@Space@|재생 / 일시정지|| |
||
| 99 | |@→@|5초 앞으로|| |
||
| 100 | |@←@|5초 뒤로|| |
||
| 101 | |@Shift + →@|10초 앞으로|| |
||
| 102 | |@Shift + ←@|10초 뒤로|| |
||
| 103 | |@↑@|볼륨 증가|5% 단위| |
||
| 104 | |@↓@|볼륨 감소|5% 단위| |
||
| 105 | |@F@ / @F11@|전체화면 토글|| |
||
| 106 | |@Esc@|전체화면 해제|| |
||
| 107 | |@M@|음소거 토글|| |
||
| 108 | |@N@|다음 영상|| |
||
| 109 | |@P@|이전 영상|| |
||
| 110 | |@S@|자막 ON / OFF|| |
||
| 111 | |@A@|A-B 구간 반복 시작 / 종료 지정|1회: A 지점, 2회: B 지점| |
||
| 112 | |@Ctrl + O@|파일 열기|| |
||
| 113 | |||
| 114 | h3. 2.7 PIP (Picture in Picture) |
||
| 115 | |||
| 116 | |_.ID|_.기능명|_.상세 설명|_.플랫폼| |
||
| 117 | |FR-23|PIP 모드 전환|다른 앱을 사용하는 동안 영상을 작은 플로팅 창으로 재생. Android 시스템 PIP API 활용|Android 전용| |
||
| 118 | |||
| 119 | --- |
||
| 120 | |||
| 121 | h2. 3. 비기능 요구사항 |
||
| 122 | |||
| 123 | |_.구분|_.항목|_.내용| |
||
| 124 | |성능|재생 지연|파일 열기 후 재생 시작까지 2초 이내| |
||
| 125 | |성능|탐색 응답|진행바 드래그 탐색 후 화면 반영까지 0.5초 이내| |
||
| 126 | |호환성|Windows|Windows 10 이상 (64bit)| |
||
| 127 | |호환성|Android|Android 8.0 (API 26) 이상| |
||
| 128 | |지원 포맷|동영상|MP4, MKV, AVI, MOV, FLV, WMV (FFmpeg 지원 포맷 전체)| |
||
| 129 | |지원 포맷|자막|SRT, ASS/SSA| |
||
| 130 | |UI/UX|다크 모드|기본 다크 테마 적용, 라이트 모드 선택 가능| |
||
| 131 | |UI/UX|반응형 레이아웃|화면 크기에 따라 컨트롤 바 및 레이아웃 자동 조정| |
||
| 132 | |데이터|재생 기록 저장|이어보기 및 최근 재생 목록을 로컬 DB(SQLite)에 저장| |
||
| 133 | |||
| 134 | --- |
||
| 135 | |||
| 136 | h2. 4. 기술 스택 |
||
| 137 | |||
| 138 | |_.구분|_.기술 / 라이브러리|_.용도| |
||
| 139 | |개발 언어|Dart|Flutter 앱 개발 언어| |
||
| 140 | |프레임워크|Flutter|Windows / Android 크로스플랫폼 UI 프레임워크| |
||
| 141 | |미디어 재생|media_kit|FFmpeg 기반 코덱 처리 및 영상 재생| |
||
| 142 | |미디어 재생|media_kit_video|영상 렌더링 위젯| |
||
| 143 | |자막|subtitle_view|자막 파싱 및 표시| |
||
| 144 | |파일 선택|file_picker|파일 탐색기 연동| |
||
| 145 | |로컬 저장소|sqflite|재생 히스토리 및 설정 저장| |
||
| 146 | |||
| 147 | --- |
||
| 148 | |||
| 149 | h2. 5. 개발 우선순위 |
||
| 150 | |||
| 151 | |_.단계|_.구분|_.포함 기능| |
||
| 152 | |Phase 1|핵심 재생 기능|재생/일시정지, 진행바, 볼륨, 파일 열기, 전체화면| |
||
| 153 | |Phase 2|자막 & 오디오|자막 불러오기, 싱크 조절, 스타일, 오디오 트랙 선택| |
||
| 154 | |Phase 3|플레이리스트|파일 추가, 이전/다음, 반복 모드, 최근 재생 목록, 이어보기| |
||
| 155 | |Phase 4|편의 기능|A-B 반복, 재생 속도, 단축키, 제스처 제어, Always on Top| |
||
| 156 | |Phase 5|고급 기능|썸네일 미리보기, 자막 자동 검색, PIP, 드래그 앤 드롭| |
||
| 157 | |||
| 158 | --- |
||
| 159 | |||
| 160 | h2. 6. 변경 이력 |
||
| 161 | |||
| 162 | |_.버전|_.일자|_.작성자|_.변경 내용| |
||
| 163 | |v1.0|2026-03-24|페후 (이태훈)|최초 작성| |