Android 尝试录制视频时出现VerifiyAndSetParameter错误

Android 尝试录制视频时出现VerifiyAndSetParameter错误,android,video-capture,Android,Video Capture,我一直在尝试创建一个应用程序,将视频录制并上传到S3存储桶。 我一直在用(稍加修改)这个词。但是录音结束后,我会得到一个错误列表。(我使用的是Galaxy S2手机,所以它是受支持的) 摄像机活动代码: Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); fileUri = SavingMedia .getOutputMediaFileUri(SavingMedi

我一直在尝试创建一个应用程序,将视频录制并上传到S3存储桶。 我一直在用(稍加修改)这个词。但是录音结束后,我会得到一个错误列表。(我使用的是Galaxy S2手机,所以它是受支持的)

摄像机活动代码:

        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);
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
LogCat输出:

        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);
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
05-08 10:46:31.875:E/CameraInput(2595):录制未就绪(IPER 0xfbb3c iState 2 iWriteState 1 iClockState 0),帧已丢弃
05-08 10:46:31.910:E/CameraInput(2595):记录未准备就绪(IPER 0xfbb3c iState 2 iWriteState 1 iClockState 0),帧丢失
05-08 10:46:31.945:E/CameraInput(2595):记录未准备就绪(IPER 0xfbb3c iState 2 iWriteState 1 iClockState 0),帧丢失
05-08 10:46:31.975:E/CameraInput(2595):录制未准备就绪(IPER 0xfbb3c iState 2 iWriteState 1 iClockState 0),帧丢失
05-08 10:46:33.455:E/yamaha::media::Parameters(2595):SalesCode=PTR
05-08 10:46:33.705:E/CameraInput(2595):不支持的参数(x-pvmf/媒体输入节点/cap配置界面;valtype=键特定值)
05-08 10:46:33.705:E/CameraInput(2595):验证参数0的设置参数失败
05-08 10:46:33.705:E/audio_输入(2595):不支持的参数:x-pvmf/媒体输入节点/cap配置接口;valtype=键的特定值
05-08 10:46:33.705:E/audio_输入(2595):验证和设置参数失败
05-08 10:46:33.740:E/AndroidRuntime(29786):致命异常:主
05-08 10:46:33.740:E/AndroidRuntime(29786):java.lang.NullPointerException
05-08 10:46:33.740:E/AndroidRuntime(29786):位于java.io.File.fixSlashes(File.java:205)
05-08 10:46:33.740:E/AndroidRuntime(29786):位于java.io.File.init(File.java:189)
05-08 10:46:33.740:E/AndroidRuntime(29786):位于java.io.File.(File.java:139)
05-08 10:46:33.740:E/AndroidRuntime(29786):在com.sec.android.app.camera.CamcorderEngine.renameTempFile(CamcorderEngine.java:1206)
05-08 10:46:33.740:E/AndroidRuntime(29786):在com.sec.android.app.camera.CamcorderEngine.doStopVideoRecordingSync(CamcorderEngine.java:812)
05-08 10:46:33.740:E/AndroidRuntime(29786):在com.sec.android.app.camera.cestatecording.handleRequest(cestatecording.java:69)
05-08 10:46:33.740:E/AndroidRuntime(29786):位于com.sec.android.app.camera.CeRequestQueue.startFirstRequest(CeRequestQueue.java:123)
05-08 10:46:33.740:E/AndroidRuntime(29786):位于com.sec.android.app.camera.CeRequestQueue.access$200(CeRequestQueue.java:32)
05-08 10:46:33.740:E/AndroidRuntime(29786):位于com.sec.android.app.camera.CeRequestQueue$MainHandler.handleMessage(CeRequestQueue.java:60)
05-08 10:46:33.740:E/AndroidRuntime(29786):在android.os.Handler.dispatchMessage(Handler.java:99)上
05-08 10:46:33.740:E/AndroidRuntime(29786):在android.os.Looper.loop(Looper.java:123)上
05-08 10:46:33.740:E/AndroidRuntime(29786):位于android.app.ActivityThread.main(ActivityThread.java:3691)
05-08 10:46:33.740:E/AndroidRuntime(29786):位于java.lang.reflect.Method.Invokenactive(本机方法)
05-08 10:46:33.740:E/AndroidRuntime(29786):位于java.lang.reflect.Method.invoke(Method.java:507)
05-08 10:46:33.740:E/AndroidRuntime(29786):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
05-08 10:46:33.740:E/AndroidRuntime(29786):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
05-08 10:46:33.740:E/AndroidRuntime(29786):在dalvik.system.NativeStart.main(本机方法)
05-08 10:46:33.770:E/(2806):转储状态>/data/log/Dumpstate\u app\u错误

伙计,你应该看到以下问题的答案, 它对我有效,对你也有效

注意:我有如下相同的错误

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

解决方案:使用安卓2.2、2.3 ... 我已经完成了以下过程来捕捉照片

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;
}
}
int-CAMERA\u与视频数据=2;
//开始照片捕获活动。。。
意向意向=新意向(MediaStore.ACTION\u VIDEO\u CAPTURE,空);
startActivityForResult(意图、摄像头和视频数据);
....
....
私有void saveVideoFileOnActivityResult(意图videoIntent){
FileInputStream fis=null;
FileOutputStream=null;
文件mCurrentVideoFile=null;
试一试{
mCurrentVideoFile=新文件(“到您的文件的路径”);
AssetFileDescriptor videoAsset=getContentResolver().openAssetFileDescriptor(videoIntent.getData(),“r”);
fis=videoAsset.createInputStream();
//File videoFile=新文件(Environment.getExternalStorageDirectory(),“.mp4”);
fos=新文件输出流(mCurrentVideoFile);
字节[]缓冲区=新字节[1024];
整数长度;
而((长度=fis.read(缓冲区))>0){
fos.写入(缓冲区,0,长度);
}       
//fis.close();
//fos.close();
}捕获(IOE异常){
//TODO:句柄错误
e、 printStackTrace();
}最后{
试一试{
如果(fis!=null)
fis.close();
如果(fos!=null)
fos.close();
}捕获(异常e2){
//TODO:处理异常
e2.printStackTrace();
}
} 
}
....
....
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
开关(请求代码){
带有视频数据的机箱摄像头:
//将数据传递给上述方法以保存它。
saveVideoFileOnActivityResult(数据);
打破
违约:
打破
}
}

好的,我改进了日志,以查看错误从何处开始,程序失败的第一行是:

05-08 10:46:33.740: E/AndroidRuntime(29786):    at com.sec.android.app.camera.CamcorderEngine.renameTempFile(CamcorderEngine.java:1206)
我在谷歌上快速搜索了一下,很明显,
MediaStore.EXTRA_输出
无法正常工作,并且存在问题

这是上面写的答案:

事实上,我发现在某些情况下MediaStore.EXTRA_输出无法正常工作,所以另一个窍门是,将捕获的视频文件存储在onActivityResult()中

activityresult上的受保护无效(int-re