a) ograniczyć zużycie procesora na odświeżanie go na stronie
Jakie masz zużycie procesora? Czy sprawdzasz zużycie procesora za pomocą profilera (np. używając Chrome Dev Tools)? Powinieneś, bo inaczej to będą spekulacje (które czasem będą sensowne, czasem nie).
W mojej aplikacji react wykorzystuję React Webcam do przechwytywania obrazu z kamerki.
Z tego co widzę, to ten React Webcam to po prostu wrapper na WebRTC. https://github.com/mozmorris/react-webcam/blob/master/src/react-webcam.tsx
Więc jeśli chcesz jakichś optymalizacji dokonywać, to najlepiej byłoby nie bawić się we wrappery, tylko napisać w czystym WebRTC, gdzie miałbyś więcej elastyczności.
Ideałem byłoby, gdyby dało się w ogóle pominąć canvas
i łapać po prostu zdjęcie z kamery.
Tyko nie wiem, czy się tak da. Tutorial na MDN o tym, jak łapać zdjęcia, robi coś podobnego jak React Webcam, tj. łapie getUserMedia()
, pobiera video stream, rysuje klatkę na canvas i dopiero z canvasa pobiera zdjęcie:
https://developer.mozilla.org/en-US/docs/Web/API/Media_Capture_and_Streams_API/Taking_still_photos
Czy więc użycie canvas
to jest jedyne wyjście? Nie wiem.
Tym niemniej jeśli dobrze pamiętam, to element canvas
nie musi wcale być dołączony do strony, można by utworzyć canvas w pamięci po prostu. Teraz patrzę w MDN i jest coś takiego jak OffscreenCanvas https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas
pisali, że zmiana display
może być zasobożerna, jednak w mojej aplikacji raczej działo by się to raz podczas wybierania opcji minimalnego zużycia. Jakie jest najlepsze rozwiązanie dla mnie?
Czy mierzysz to zużycie (albo czy widać gołym okiem spadek wydajności), czy tylko boisz się, że tak będzie? I gdzie tak pisali?