Niedawno podążałem za Eksperci Programowania Tutorial YouTube ON za pomocą aparatu2 API. Ale w ten sposób metoda przestarzałego " CreateCapturesesessession () w następujący sposób:

cameraDevice.createCaptureSession(Arrays.asList(surface), new CameraCaptureSession.StateCallback() {
     @Override
     public void onConfigured(@NonNull CameraCaptureSession session) {
         if (mycameraDevice == null){
             return;
         }
         cameraCaptureSession = session;
         if (cameraDevice == null){
             return;
         }
         captureRequestBuilder.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO);
         try {
             cameraCaptureSession.setRepeatingRequest(captureRequestBuilder.build(), null, mBackgroundHandler);
         } catch (CameraAccessException e) {
             e.printStackTrace();
         }
     }
     @Override
     public void onConfigureFailed(@NonNull CameraCaptureSession session) {
         Toast.makeText(MainActivity.this, "Configuration Failed! :(", Toast.LENGTH_SHORT).show();
     }
 }, null); 

Dowiedziałem się również To pytanie na stackoverflow, gdzie jest to, że musimy zrobić coś w rodzaju:

SessionConfiguration sessionConfiguration = new SessionConfiguration(SessionConfiguration.SESSION_REGULAR, Collections.singletonList(outputConfiguration), new HandlerExecutor(mCameraHandler.getLooper()), mCameraSessionListener);
cameraDevice.createCaptureSession(sessionConfiguration);

Po pierwsze, czy jest to właściwy sposób użycia, a jeśli tak, to co jest wyjściem outporation i jak zadeklarować go poprawnie? W samouczku YouTube nigdy nie powstaje jakąkolwiek wyjścieConfiguration!

Więc jakie zmiany oczekiwałem, aby móc ponownie użyć kodu?

1
CoolCoder 13 kwiecień 2021, 18:10

1 odpowiedź

Najlepsza odpowiedź

Nie ma powodu, dla którego nie można zachować za pomocą przestarzałej wersji CreateCapturesessessessess - działa tak samo jak wcześniej. Wystarczy zignorować ostrzeżenia o deprecjacji Studio Android.

Zasadniczo, z czasem, musimy dodać więcej przeładowania CreateCaptureesessesa z coraz większą liczbą odmian parametrów i parametrów opcjonalnych, a to było nadmierne.

Utworzyliśmy więc SessionConfiguration jako obiekt konfiguracyjny, który jest bardziej Elastyczne w czasie (łatwiejsze do dodania nowych parametrów), skonfigurować jeszcze jedną createCapturessessessessesses, która akceptuje, a przestarzałe wszystkie wcześniejsze wersje, aby bezpośrednich kierować ludzi do tego, co dodajemy dzisiaj, gdybyśmy ponownie zaprojektowali interfejs API.

Jeśli chcesz korzystać z najnowszej opcji, możesz spojrzeć na Exputconfiguration (wystarczy owijać listę powierzchni wyjściowych plus kilka innych ustawień opcjonalnych) - możesz zbudować jeden z po prostu surface włączeniem Arrays.asList() w kodzie przykładowym.

Ale możesz po prostu używać tego, co masz - nie przełamujemy starych metod.

0
Eddy Talvala 14 kwiecień 2021, 00:49