HTML5 riproduzione con dissolvenza in apertura e chiusura

Mi piacerebbe avviare e interrompere la riproduzione HTML5 in una posizione casuale con fasi di dissolvenza e dissolvenza per semplificare l’esperienza di ascolto.

Che tipo di meccanismi esiste per questo? Aumentare manualmente il volume con setTimeout ()?