Search code examples
androidvideo-capture

VerifiyAndSetParameter error when trying to record video


I've been trying to create an app that records and uploads a video to a S3 bucket. I've been using (with a little altering) the Android capture video intent article. but when the recording is over, I get a list of errors. (I'm using a Galaxy S2 phone so it's supported).

Code for CameraActivity:

        Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        fileUri = SavingMedia
                .getOutputMediaFileUri(SavingMedia.MEDIA_TYPE_VIDEO);
        path = fileUri.toString();

        intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
        intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION,
                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0.2);

        startActivityForResult(intent, CAPTURE_VIDEO_REQUEST_CODE);

LogCat output:

05-08 10:46:31.875: E/CameraInput(2595): Recording is not ready (iPeer 0xfbb3c iState 2 iWriteState 1 iClockState 0), frame dropped
05-08 10:46:31.910: E/CameraInput(2595): Recording is not ready (iPeer 0xfbb3c iState 2 iWriteState 1 iClockState 0), frame dropped
05-08 10:46:31.945: E/CameraInput(2595): Recording is not ready (iPeer 0xfbb3c iState 2 iWriteState 1 iClockState 0), frame dropped
05-08 10:46:31.975: E/CameraInput(2595): Recording is not ready (iPeer 0xfbb3c iState 2 iWriteState 1 iClockState 0), frame dropped
05-08 10:46:33.455: E/yamaha::media::Parameters(2595): SalesCode = PTR
05-08 10:46:33.705: E/CameraInput(2595): Unsupported parameter(x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value)
05-08 10:46:33.705: E/CameraInput(2595): VerifiyAndSetParameter failed on parameter #0
05-08 10:46:33.705: E/audio_input(2595): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
05-08 10:46:33.705: E/audio_input(2595): VerifyAndSetParameter failed
05-08 10:46:33.740: E/AndroidRuntime(29786): FATAL EXCEPTION: main
05-08 10:46:33.740: E/AndroidRuntime(29786): java.lang.NullPointerException
05-08 10:46:33.740: E/AndroidRuntime(29786):    at java.io.File.fixSlashes(File.java:205)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at java.io.File.init(File.java:189)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at java.io.File.<init>(File.java:139)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at com.sec.android.app.camera.CamcorderEngine.renameTempFile(CamcorderEngine.java:1206)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at com.sec.android.app.camera.CamcorderEngine.doStopVideoRecordingSync(CamcorderEngine.java:812)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at com.sec.android.app.camera.CeStateRecording.handleRequest(CeStateRecording.java:69)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at com.sec.android.app.camera.CeRequestQueue.startFirstRequest(CeRequestQueue.java:123)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at com.sec.android.app.camera.CeRequestQueue.access$200(CeRequestQueue.java:32)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at com.sec.android.app.camera.CeRequestQueue$MainHandler.handleMessage(CeRequestQueue.java:60)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at android.os.Looper.loop(Looper.java:123)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at android.app.ActivityThread.main(ActivityThread.java:3691)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at java.lang.reflect.Method.invokeNative(Native Method)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at java.lang.reflect.Method.invoke(Method.java:507)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
05-08 10:46:33.740: E/AndroidRuntime(29786):    at dalvik.system.NativeStart.main(Native Method)
05-08 10:46:33.770: E/(2806): Dumpstate > /data/log/dumpstate_app_error

Solution

  • Buddy you should see answer of following Question, It is working for me and definitely work for you.

    Android: Video Recording Throws Error

    NOTE : I have same error as follows

    at com.sec.android.app.camera.CamcorderEngine.renameTempFile(CamcorderEngine.java:1206)

    Solution : Working in Android 2.2, 2.3 ... I have done following process to capture photo

    int CAMERA_WITH_VIDEO_DATA = 2;
    //start photo capture activity...
    
     Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE, null);
     startActivityForResult(intent, CAMERA_WITH_VIDEO_DATA);
    
    ....
    ....
    
    private void saveVideoFileOnActivityResult(Intent videoIntent){
       FileInputStream fis = null;
       FileOutputStream fos = null;
       File mCurrentVideoFile = null;
       try {
             mCurrentVideoFile = new File("path_to_your_file");
             AssetFileDescriptor videoAsset = getContentResolver().openAssetFileDescriptor(videoIntent.getData(), "r");
             fis = videoAsset.createInputStream();
             //File videoFile = new File(Environment.getExternalStorageDirectory(),"<VideoFileName>.mp4"); 
             fos = new FileOutputStream(mCurrentVideoFile);
    
             byte[] buffer = new byte[1024];
             int length;
             while ((length = fis.read(buffer)) > 0) {
                   fos.write(buffer, 0, length);
              }       
             //fis.close();
             //fos.close();
       } catch (IOException e) {
          // TODO: handle error
         e.printStackTrace();
       }finally{
           try {
               if(fis!=null)
                  fis.close();
               if(fos!=null)
                  fos.close();
           } catch (Exception e2) {
            // TODO: handle exception
            e2.printStackTrace();
           }
       } 
       }
    ....
    ....
    
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
    case CAMERA_WITH_VIDEO_DATA:
    //pass data to above method to save it.
    saveVideoFileOnActivityResult(data);
    break;
    
    default:
    break;
    }
    }