YouTube Player — Módulo
Gerado pelo Writer (Reversa) em 2026-05-11
doc_level: detalhado
Visão Geral
Player de vídeos do YouTube integrado à tela de música, com dois modos de exibição: full (fullscreen calculado 16:9) e mini (200×112px arrastável). Suporta controle de velocidade e loop de trechos (parcialmente comentados no código).
Regras de Negócio
- Player exibe o vídeo sem recarregar ao alternar entre modo full e mini 🟢
- Dimensão
videoHeight = min(screenWidth × 9/16, windowHeight / 4) 🟢
- Mini player: 200×112px + 28px de controles = 140px total 🟢
- Mini player arrastável com limites calculados pela janela 🟢
useStopYoutubeVideo para a reprodução ao navegar para outra tela 🟢
- Controle de loop via
setInterval a cada 500ms — comentado no código atual (useLoopControl) 🟡
- Controle de velocidade — modal
YoutubeVelocidadeModal — comentado parcialmente 🟡
Requisitos Funcionais
| ID |
Requisito |
Prioridade |
Critério de Aceite |
| RF-01 |
Exibir player YouTube fullscreen 16:9 |
Must |
YoutubePlayer renderizado com videoHeight calculado |
| RF-02 |
Minimizar para mini player arrastável |
Must |
isMini = true; drag funcional com limites de tela |
| RF-03 |
Play/pause via controles |
Must |
setPlaying toggled; PLAYER_STATES.PLAYING/PAUSED mapeados |
| RF-04 |
Fechar player |
Must |
onClose() chamado; reprodução parada |
| RF-05 |
Loop de trecho (start → end) |
Could |
useLoopControl monitora currentTime a cada 500ms |
| RF-06 |
Controle de velocidade |
Could |
Modal de velocidade altera rate do player |
Rastreabilidade de Código
| Arquivo |
Função / Classe |
Cobertura |
src/view/fragment/Youtube/YoutubePlayerView.tsx |
YoutubePlayerView |
🟢 |
src/view/fragment/Youtube/YoutubePlayerView.types.ts |
MINI_PLAYER_DIMENSIONS, LoopState, etc. |
🟢 |
src/view/fragment/Youtube/bar/YoutubeBarPlayerView.tsx |
Mini player controls |
🟡 |
useLoopControl, useMiniPlayerDrag, usePlayerState |
hooks |
🟡 |
Dependências Externas
| Dependência |
Uso |
react-native-youtube-iframe |
Player YouTube (iframe) |
react-native-gesture-handler |
Drag do mini player |
react-native-reanimated |
Animações de posição do mini player |