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.

questionAnswers(6)

yourAnswerToTheQuestion