Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9237469
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T07:32:31+00:00 2026-06-18T07:32:31+00:00

I have two different code bases with the same problem. The first one is

  • 0

I have two different code bases with the same problem.

The first one is code copied straight from developer.android.com here:
http://developer.android.com/guide/topics/media/camera.html#custom-camera

The second one is this code:

http://android-er.blogspot.com.au/2011/10/simple-exercise-of-video-capture-using.html

Both work fine with the normal rear camera, but as soon as I try to use the front facing camera I get the error.

This happens on the following devices:

  • Nexus S 4.1.2

  • Galaxy Nexus 4.1.2

  • Nexus 7 4.2.1 (it only has front facing camera)

I have tried what looks like 2.2 era Camera Params as well, which some people claim is required with some Samsung and HTC devices, although multiple different articles reference different String Keys:

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);

None of these work, also please note that I am detecting the correct Front Facing Camera ID which on the Nexus 7 is of course: 0. But the results are the same on all the devices.

I have tried using low quality profile, I have tried setting the video resolution, encoder, output format, bitrate, frame rate and video size manually in a multitude of ways but none which have worked.

The thing which makes me think theres nothing wrong with most of the code is that the regular camera works fine. So my guess is its something to do with the prepareVideoRecorder() / prepareMediaRecorder() method which sets up the Media Recorder.

Perhaps a Media Recorder manual encoding settings that are known to work on a front facing camera?

I have to say, the Android Camera and MediaRecorder API’s suck. Compared with iOS its a bit of a mess, not to mention some of the scary looking param incompatibility issues and different resolutions across the fragmented device landscape.

Assuming I can get it working on my JB devices, does anyone know from experience if most of these issues are resolved with API 15 ICS?

I would consider not supporting API 10 Gingerbread if its going to be too hard to support.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T07:32:32+00:00Added an answer on June 18, 2026 at 7:32 am

    Okay so I finally have it working sort of.

    The issue seems to definitely relate to Profile Settings and in particular Frame Rate.

    On the Nexus S, my primary test device, if I probe the Camera I receive following Parameters:

    For the Rear Camera:
    15 FPS to 30 FPS, fair enough.

    For the Front Facing Camera:
    7.5 FPS to 30 FPS, okay.

    Then I check the Profiles I am trying to use:

    CamcorderProfile.QUALITY_HIGH
    CamcorderProfile.QUALITY_LOW

    QUALITY_LOW:

    audioBitRate: 12200
    audioChannels: 1
    audioCodec: AMR_NB
    audioSampleRate: 8000
    duration: 30
    fileFormat: THREE_GPP
    quality: 0
    videoBitRate: 256000
    videoCodec: H264
    videoFrameRate: 30
    videoFrameWidth: 176
    videoFrameHeight: 144

    QUALITY_HIGH:

    audioBitRate: 24000
    audioChannels: 1
    audioCodec: AAC
    audioSampleRate: 16000
    duration: 60
    fileFormat: MPEG_4
    quality: 1
    videoBitRate: 3000000
    videoCodec: H264
    videoFrameRate: 30
    videoFrameWidth: 720
    videoFrameHeight: 480

    Clearly, the High Quality Profile is meant for the Rear Camera, seeing as the front facing is only 640×480. But they both state 30 FPS.

    Now…. Here’s the weirdness:

    If I set ANY frame rate for the rear facing camera, no matter what profile, it crashes with the dreaded:

    -19 error

    mediaRecorder.setVideoFrameRate(fpsInt);
    

    That’s not a big deal coz I don’t care about the rear camera but it is weird, considering the profiles are defaulting to 30 and the Params say they accept 15-30. But no int value I’ve tried has worked. If I omit the setVideoFrameRate it’s fine.

    Anyway, moving onto the Front Facing Camera.

    So, if I use the QUALITY_LOW profile AND set the frame-rate to 15 or lower, it magically works.

    mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW));
    mediaRecorder.setVideoFrameRate(15);
    

    In fact any value, 1 – 15 works. Which seems weird.

    So here’s the conundrum, I can probably probe for resolution and select an appropriate res for most cameras, although I’m also fairly confident almost all front-facing cameras at minimum VGA 640×480.

    But, what about the frame rate?
    In the case of the Nexus S, I don’t see any way I could determine the value of 15 or lower without just guessing?
    Should I aim to always use the LOWEST frame-rate that is returned by the Camera?

    I took a look at the Galaxy Nexus and it has 3 frame rate ranges, the first one is 15 – 15 and the second is 15 – 30. Its low quality profile is similar albeit higher resolution. If I use low profile on Galaxy Nexus it seems to work fine.

    With the Nexus 7, I cant probe the CamcorderProfile’s I keep getting null pointers, which is weird.
    It says it supports 4 FPS – 60 FPS.
    If I choose QUALITY_LOW which you’d think it should work, it crashes, and I can’t find a frame rate it will work with.
    Although the error relates to setProfile, so I think the issue is with the built in profile.
    Surely the point of Android API is that it’s consistent, this is a flag ship device and the FF camera is there for Video Conferencing isn’t it?????

    So, while I have it working on two of the devices using manual custom settings for each, I can’t see a clear way of making it work across multiple devices through code.

    It seems that the Nexus S does not behave the way it promises to with regards to setting the FPS as per its Camera.getParameters().getSupportedPreviewFpsRange()

    I’m all happy for it to use Auto FPS settings but apparently it won’t with the FF camera so what am I supposed to do? I have to explicitly set the FPS on the Nexus S and in this case to anything from 1 to 15 FPS, despite the Camera telling me it handles 7.5 – 30 FPS.

    Seems like the promise of the setProfile fixing all the issues in 2.x wasn’t entirely true.

    I can understand if your writing the Camera App for a particular ROM you just customize it to that particular hardware, which might explain why people seem to always have buggy camera apps on custom ROMs. BUT….. How do downloadable video recording apps work? Are they custom to each device?

    Is this why there’s no Facebook Poke and Twitter Vine on Android yet???? 😛

    Google, what is with your Camera API?

    Does anyone know the “best practices” to determine resolution and frame-rate for all API 15+ compatible devices?

    Is that even possible, or am I going to be writing custom code on each device I test and then just roll the dice on the rest?

    Or is the Nexus S and the Nexus 7 just freak accidents?

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have the same block of code repeated with two different variables. This block
I have two different libGL libraries on the same Ubuntu 11.04 machine. One library
I have two code-first WCF web services that expose a few of the same
I have this code to identify two different image map shape attributes. What I'm
I have two pieces of C++ code running on 2 different cores. Both of
I have two different arrays, one with strings and another with ints. I want
I have two TCP-server apps that are based on the same code, but for
Have two scripts that give very different results. First using csv.reader and it works
I have two different buttons on my page. I want them both to be
I have two different web applications running on two different instances of tomcat. I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.