Budżet: 4000 UAH Termin: 1 dzień
Dzień dobry!
Zwróciłem uwagę na opis problemów z odtwarzaczem wideo w Twoim projekcie — w szczególności na wycieki pamięci i niestabilne zachowanie na iOS Safari podczas korzystania z ReactPlayer z HLS.js.
Ważne jest, aby zaznaczyć, że iOS Safari ma wbudowane wsparcie dla HLS i nie obsługuje w pełni MediaSource Extensions (MSE), które są krytycznie potrzebne do działania HLS.js. Z tego powodu:
1) HLS.js nie powinien być używany w iOS Safari — jest to nie tylko nieefektywne, ale może prowadzić do wycieków pamięci i awarii.
2) ReactPlayer, który automatycznie korzysta z HLS.js dla strumieni HLS, nie uwzględnia specyfiki iOS Safari, co powoduje opisane przez Ciebie problemy.
Mogę zaproponować następujące rozwiązanie:
1) Użycie niestandardowego odtwarzacza wideo, który warunkowo wykrywa iOS Safari i odtwarza HLS bezpośrednio, bez HLS.js.
2) Dla wszystkich innych platform — podłączenie HLS.js tylko tam, gdzie jest to naprawdę konieczne.
3) Poprawne czyszczenie zasobów multimedialnych (pause, removeAttribute('src'), load, destroy), aby uniknąć wycieków podczas przełączania strumieni.
Jeśli jesteś zainteresowany — mogę szybko wdrożyć prototyp takiego odtwarzacza lub przepisać istniejący komponent zgodnie z tą logiką. Chętnie omówię szczegóły projektu, stos technologiczny i zadania.