Mi chiedevo quale sarebbe stata la macchina di stato per un video player.
Posso pensare a due stati: giocare e mettere in pausa.
- Quando il video è in riproduzione e l'utente fa clic su un punto nella barra di avanzamento, il video viene messo in pausa (il lettore video passa dallo stato di riproduzione allo stato di pausa) finché l'utente non smette di premere il pulsante del mouse. Quando il mouse viene rilasciato, il video riprende a suonare dal punto selezionato (il video player passa dallo stato di pausa allo stato di riproduzione).
- Tuttavia, se il video è stato messo in pausa prima che l'utente abbia fatto clic sulla barra di avanzamento, il video salta al punto specificato ma non inizia la riproduzione (il lettore video rimane nello stato di pausa).
Le transizioni di stato sarebbero:
in riproduzione (fai clic sulla barra di avanzamento) - > in pausa (clic finale sulla barra di avanzamento) - > riproduzione in pausa (fai clic sulla barra di avanzamento) - > in pausa (clic finale sulla barra di avanzamento) - > in pausa
Se esisteva un metodo per modificare la posizione del video nello stato di pausa, chiamare quel metodo comporterebbe uno stato diverso a seconda dello stato precedente. Mi stavo chiedendo se esiste un progetto di macchina a stati alterni per un video player in cui le transizioni da ogni stato non dipendono da nessuno stato precedente.