VerifiyAndSetParameter error while trying to record video

I am trying to create an application that records and uploads video to an S3 bucket. I used (with a little modification) an article about the intention to capture video for Android . but when the recording is finished, I get a list of errors. (I use a Galaxy S2 phone to support it).

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 
0
source share
2 answers

Buddy, you should see the answer to the next Question, It works for me and definitely works for you.

Android: video gives an error

NOTE. I have the following error:

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

Solution: Work in Android 2.2, 2.3 ... I did the following process to capture photos

 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; } } 
+2
source

OK, I updated my Logcat to find out where the error starts, and the first line where the program crashes:

 05-08 10:46:33.740: E/AndroidRuntime(29786): at com.sec.android.app.camera.CamcorderEngine.renameTempFile(CamcorderEngine.java:1206) 

A quick google search led me to this place , and apparently MediaStore.EXTRA_OUTPUT DOES NOT MediaStore.EXTRA_OUTPUT works correctly and has problems.

this is the answer that was written there:

Actually, I found that in some case MediaStore.EXTRA_OUTPUT is not working properly, so another way is to save the captured video file in onActivityResult ()

 protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if (resultCode == RESULT_OK) { try { AssetFileDescriptor videoAsset = getContentResolver().openAssetFileDescriptor(intent.getData(), "r"); FileInputStream fis = videoAsset.createInputStream(); File videoFile = new File(Environment.getExternalStorageDirectory(),"<VideoFileName>.mp4"); FileOutputStream fos = new FileOutputStream(videoFile); 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 } } } 
0
source

Source: https://habr.com/ru/post/1499531/


All Articles