요구사항정의서¶
동영상 플레이어 앱 요구사항 정의서 (SRS)¶
| 항목 |
내용 |
| 프로젝트명 |
BBPlayer |
| 프로그램명 |
BBPlayer |
| 문서 버전 |
v1.0 |
| 작성일 |
2026년 03월 24일 |
| 작성자 |
페후 (이태훈) |
| 상태 |
초안 (Draft) |
1. 프로젝트 개요¶
1.1 목적¶
기존 동영상 플레이어의 자막 오류 및 소리 문제를 개선하고, Windows 데스크탑과 Android 모바일 환경 모두에서 동작하는 크로스플랫폼 동영상 플레이어 앱을 개발한다.
1.2 범위¶
- 지원 플랫폼: Windows 10 이상 (데스크탑), Android 8.0 이상 (APK)
- 개발 기술: Flutter (Dart), media_kit (FFmpeg 기반 코덱 처리)
- 주요 기능: 동영상 재생, 자막, 플레이리스트, 제스처 제어, 키보드 단축키
1.3 용어 정의¶
| 용어 |
설명 |
| media_kit |
FFmpeg 기반의 Flutter 크로스플랫폼 미디어 재생 라이브러리 |
| SRT / ASS |
자막 파일 포맷 (SubRip / Advanced SubStation Alpha) |
| A-B 반복 |
사용자가 지정한 구간을 반복 재생하는 기능 |
| PIP |
Picture in Picture: 다른 앱 사용 중 영상을 작은 창으로 재생 |
| Always on Top |
플레이어 창이 항상 다른 창 위에 표시되는 기능 |
2. 기능 요구사항¶
2.1 재생 컨트롤¶
| ID |
기능명 |
상세 설명 |
플랫폼 |
| FR-01 |
재생 / 일시정지 |
영상을 재생하거나 일시정지한다. 컨트롤 바 버튼 및 단축키로 토글 가능 |
Windows / Android |
| FR-02 |
10초 앞으로 / 뒤로 |
버튼 클릭 시 현재 재생 위치에서 정확히 10초 이동 |
Windows / Android |
| FR-03 |
재생 진행바 |
영상 전체 길이 대비 현재 위치를 표시하며, 드래그하여 원하는 위치로 탐색 가능 |
Windows / Android |
| FR-04 |
재생 속도 조절 |
0.25x ~ 2.0x 범위에서 재생 속도 선택 가능 (0.25x 단위) |
Windows / Android |
| FR-05 |
화면 비율 변경 |
16:9 / 4:3 / 화면 맞춤 / 전체화면 모드 선택 가능 |
Windows / Android |
| FR-06 |
항상 위 (Always on Top) |
플레이어 창을 다른 모든 창 위에 항상 표시 |
Windows 전용 |
| FR-07 |
이어보기 |
앱 종료 후 재실행 시 마지막 재생 위치부터 자동으로 이어서 재생 |
Windows / Android |
| FR-08 |
A-B 구간 반복 |
사용자가 시작점(A)과 종료점(B)을 지정하면 해당 구간을 무한 반복 재생 |
Windows / Android |
2.2 자막¶
| ID |
기능명 |
상세 설명 |
플랫폼 |
| FR-09 |
자막 파일 불러오기 |
SRT, ASS 형식의 외부 자막 파일을 수동으로 불러와 적용 |
Windows / Android |
| FR-10 |
자막 싱크 조절 |
자막 표시 시간을 ±0.1초 단위로 수동 조정 가능 |
Windows / Android |
| FR-11 |
자막 ON/OFF |
자막 표시 여부를 토글로 즉시 전환 가능 |
Windows / Android |
| FR-12 |
자막 스타일 커스터마이징 |
자막 글자 크기, 색상, 배경색을 사용자가 직접 설정 가능 |
Windows / Android |
| FR-13 |
자막 자동 검색 |
재생 중인 파일명을 기준으로 외부 자막 사이트에서 자막을 자동 검색하여 다운로드 제안 |
Windows / Android |
2.3 오디오¶
| ID |
기능명 |
상세 설명 |
플랫폼 |
| FR-14 |
볼륨 조절 |
0~100% 범위의 볼륨을 슬라이더 또는 제스처/단축키로 조절 |
Windows / Android |
| FR-15 |
음소거 |
볼륨을 즉시 0으로 전환하며, 재토글 시 이전 볼륨으로 복원 |
Windows / Android |
| FR-16 |
오디오 트랙 선택 |
MKV 등 다중 오디오 트랙이 포함된 파일에서 원하는 트랙을 선택 |
Windows / Android |
2.4 플레이리스트¶
| ID |
기능명 |
상세 설명 |
플랫폼 |
| FR-17 |
파일 추가 |
파일 탐색기를 통해 개별 파일 또는 폴더 단위로 영상 파일을 플레이리스트에 추가 |
Windows / Android |
| FR-18 |
드래그 앤 드롭 |
파일 탐색기에서 앱으로 파일을 드래그하여 추가 가능 |
Windows 전용 |
| FR-19 |
이전 / 다음 영상 이동 |
플레이리스트 내 이전 또는 다음 영상으로 이동 |
Windows / Android |
| FR-20 |
반복 재생 모드 |
전체 반복 / 한 곡 반복 / 셔플 중 선택하여 재생 순서 제어 |
Windows / Android |
| FR-21 |
최근 재생 목록 |
최근 재생한 파일 히스토리를 저장하여 빠르게 다시 열기 가능 |
Windows / Android |
| FR-22 |
진행바 썸네일 미리보기 |
진행바에 마우스를 올리면 해당 위치의 영상 썸네일을 팝업으로 표시 |
Windows 전용 |
2.5 제스처 제어 (Android 전용)¶
모바일 환경에서 직관적인 조작을 위해 아래와 같은 터치 제스처를 지원한다.
| 영역 |
제스처 |
동작 |
| 전체 화면 |
좌 → 우 스와이프 |
재생 위치 앞으로 이동 (스와이프 거리에 비례) |
| 전체 화면 |
우 → 좌 스와이프 |
재생 위치 뒤로 이동 (스와이프 거리에 비례) |
| 화면 왼쪽 절반 |
아래 → 위 스와이프 |
화면 밝기 증가 |
| 화면 왼쪽 절반 |
위 → 아래 스와이프 |
화면 밝기 감소 |
| 화면 오른쪽 절반 |
아래 → 위 스와이프 |
볼륨 증가 |
| 화면 오른쪽 절반 |
위 → 아래 스와이프 |
볼륨 감소 |
| 화면 중앙 |
싱글 탭 |
재생 / 일시정지 토글 |
제스처 조작 중에는 화면 중앙에 오버레이 UI를 표시하여 현재 값을 즉시 피드백한다.
2.6 키보드 단축키 (Windows 전용)¶
PC 환경에서 마우스 없이도 빠르게 조작할 수 있도록 아래의 단축키를 지원한다.
| 단축키 |
동작 |
비고 |
Space |
재생 / 일시정지 |
|
→ |
5초 앞으로 |
|
← |
5초 뒤로 |
|
Shift + → |
10초 앞으로 |
|
Shift + ← |
10초 뒤로 |
|
↑ |
볼륨 증가 |
5% 단위 |
↓ |
볼륨 감소 |
5% 단위 |
F / F11 |
전체화면 토글 |
|
Esc |
전체화면 해제 |
|
M |
음소거 토글 |
|
N |
다음 영상 |
|
P |
이전 영상 |
|
S |
자막 ON / OFF |
|
A |
A-B 구간 반복 시작 / 종료 지정 |
1회: A 지점, 2회: B 지점 |
Ctrl + O |
파일 열기 |
|
2.7 PIP (Picture in Picture)¶
| ID |
기능명 |
상세 설명 |
플랫폼 |
| FR-23 |
PIP 모드 전환 |
다른 앱을 사용하는 동안 영상을 작은 플로팅 창으로 재생. Android 시스템 PIP API 활용 |
Android 전용 |
3. 비기능 요구사항¶
| 구분 |
항목 |
내용 |
| 성능 |
재생 지연 |
파일 열기 후 재생 시작까지 2초 이내 |
| 성능 |
탐색 응답 |
진행바 드래그 탐색 후 화면 반영까지 0.5초 이내 |
| 호환성 |
Windows |
Windows 10 이상 (64bit) |
| 호환성 |
Android |
Android 8.0 (API 26) 이상 |
| 지원 포맷 |
동영상 |
MP4, MKV, AVI, MOV, FLV, WMV (FFmpeg 지원 포맷 전체) |
| 지원 포맷 |
자막 |
SRT, ASS/SSA |
| UI/UX |
다크 모드 |
기본 다크 테마 적용, 라이트 모드 선택 가능 |
| UI/UX |
반응형 레이아웃 |
화면 크기에 따라 컨트롤 바 및 레이아웃 자동 조정 |
| 데이터 |
재생 기록 저장 |
이어보기 및 최근 재생 목록을 로컬 DB에 저장 |
4. 기술 스택¶
| 구분 |
기술 / 라이브러리 |
용도 |
| 개발 언어 |
Dart |
Flutter 앱 개발 언어 |
| 프레임워크 |
Flutter |
Windows / Android 크로스플랫폼 UI 프레임워크 |
| 미디어 재생 |
media_kit |
FFmpeg 기반 코덱 처리 및 영상 재생 |
| 미디어 재생 |
media_kit_video |
영상 렌더링 위젯 |
| 자막 |
subtitle_view |
자막 파싱 및 표시 |
| 파일 선택 |
file_picker |
파일 탐색기 연동 |
| 로컬 저장소 |
sqflite |
재생 히스토리 및 설정 저장 |
5. 개발 우선순위¶
| 단계 |
구분 |
포함 기능 |
| Phase 1 |
핵심 재생 기능 |
재생/일시정지, 진행바, 볼륨, 파일 열기, 전체화면 |
| Phase 2 |
자막 & 오디오 |
자막 불러오기, 싱크 조절, 스타일, 오디오 트랙 선택 |
| Phase 3 |
플레이리스트 |
파일 추가, 이전/다음, 반복 모드, 최근 재생 목록, 이어보기 |
| Phase 4 |
편의 기능 |
A-B 반복, 재생 속도, 단축키, 제스처 제어, Always on Top |
| Phase 5 |
고급 기능 |
썸네일 미리보기, 자막 자동 검색, PIP, 드래그 앤 드롭 |
6. 변경 이력¶
| 버전 |
일자 |
작성자 |
변경 내용 |
| v1.0 |
2026-03-24 |
페후 (이태훈) |
최초 작성 |