Android nie może nagrywać wideo z Front Fronting Camera, MediaRecorder nieudany: -19
Mam dwie różne bazy kodu z tym samym problemem.
Pierwszy z nich to kod skopiowany prosto z developer.android.com tutaj: http://developer.android.com/guide/topics/media/camera.html#custom-camera
Drugi to ten kod:
http://android-er.blogspot.com.au/2011/10/simple-exercise-of-video-capture-using.html
Oba działają poprawnie z normalną tylną kamerą, ale jak tylko spróbuję użyć przedniej kamery, otrzymam błąd.
Dzieje się tak na następujących urządzeniach:
Nexus S 4.1.2
Galaxy Nexus 4.1.2
Nexus 7 4.2.1 (ma tylko kamerę skierowaną do przodu)
Próbowałem również tego, co wygląda jak 2.2-parowe kamery, które według niektórych osób są wymagane w niektórych urządzeniach Samsunga i HTC, chociaż wiele różnych artykułów odnosi się do różnych kluczy String:
c = Camera.open(frontFacingCameraID); // attempt to get a Camera instance
Camera.Parameters params = c.getParameters();
params.set("cam-mode", 1);
params.set("cam_mode", 1);
params.set("camera-id", 1);
c.setParameters(params);
Żadna z tych metod nie działa, zauważ również, że wykrywam poprawny identyfikator kamery Front Facing, który na Nexusie 7 jest oczywiście: 0. Ale wyniki są takie same na wszystkich urządzeniach.
Próbowałem użyć profilu niskiej jakości, próbowałem ręcznie ustawiać rozdzielczość wideo, koder, format wyjściowy, szybkość transmisji, liczbę klatek i rozmiar wideo na wiele sposobów, ale żaden z nich nie zadziałał.
Sprawa, która sprawia, że myślę, że większość kodu nie jest w porządku, zwykły aparat działa dobrze. Więc zgaduję, że ma coś wspólnego z metodą prepareVideoRecorder () / prepareMediaRecorder (), która ustawia Media Recorder.
Być może ręczne ustawienia kodowania Media Recorder, które działają na aparacie skierowanym do przodu?
Muszę powiedzieć, że ssanie Android Camera i MediaRecorder API. W porównaniu z iOS to trochę bałaganu, nie wspominając o niektórych przerażających problemach z niekompatybilnością i różnych rozdzielczościach w pofragmentowanym krajobrazie urządzenia.
Zakładając, że mogę pracować na moich urządzeniach JB, czy ktoś wie z doświadczenia, czy większość z tych problemów została rozwiązana za pomocą API 15 ICS?
Uważam, że nie popieram API 10 Gingerbread, jeśli będzie zbyt trudne do wsparcia.