Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android强制关闭定制摄像头应用程序中的录像机实现问题_Java_Android_Camera_Android Camera_Video Capture - Fatal编程技术网

Java Android强制关闭定制摄像头应用程序中的录像机实现问题

Java Android强制关闭定制摄像头应用程序中的录像机实现问题,java,android,camera,android-camera,video-capture,Java,Android,Camera,Android Camera,Video Capture,我正在开发一个Android定制相机应用程序,并试图在其中实现视频录制功能。我正在使用下面的代码 private boolean prepareMediaRecorder() { myCamera = getCameraInstance(); mediaRecorder = new MediaRecorder(); myCamera.unlock(); mediaRecorder.setCamera(myCamera

我正在开发一个Android定制相机应用程序,并试图在其中实现视频录制功能。我正在使用下面的代码

    private boolean prepareMediaRecorder()
    {
        myCamera = getCameraInstance();
        mediaRecorder = new MediaRecorder();
        myCamera.unlock();
        mediaRecorder.setCamera(myCamera);
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
        mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
        mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
        mediaRecorder.setPreviewDisplay(myCameraSurfaceView.getHolder().getSurface());
        try 
        {
            File newFile = File.createTempFile("videocapture", ".mp4", Environment.getExternalStorageDirectory());
            sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
            mediaRecorder.setOutputFile(newFile.getAbsolutePath());     
        } 
        catch (IOException e)
        {
            e.printStackTrace();
            finish();
        }
        try 
        {
            mediaRecorder.prepare();
        }
        catch (IllegalStateException e)
        {
            releaseMediaRecorder();
            return false;
        }
        catch (IOException e)
        {
            releaseMediaRecorder();
            return false;
        }
        return true;
    }
但如果我使用相同的代码并在Galaxy选项卡上运行它,我会在代码的这个位置得到一个力

             mediaRecorder.start();
错误日志如下所示

当我改变时,代码在同一个平台上运行良好

   mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));


不明白为什么会这样。请帮忙!谢谢

您应该检查配置文件是否存在。我认为tab不支持它。你可以用

试试看,你能解释一下如何准确地使用这个hassprofile代码吗??我试过。。。但是没有结果!hasprofile表示该配置文件是否存在。您可以检查返回值,如if(CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_LOW)){mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW));与QUALITY_HIGH相同希望您尝试了与QUALITY_HIGH相同的方法,因此代码看起来像if(CamcorderProfile.hasProfile(QUALITY_HIGH){setProfile(QUALITY_HIGH)}else if(camcoderprofile.hasprofile(quality_low){setprofile(quality_low)}这将仅在相机支持的情况下拾取配置文件。是的。我尝试了相同的…得到了此错误..java.lang.NoSuchMethodError:android.media.CamcorderProfile.hasprofile是API级别11的方法。请检查,int)
   mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW));