Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Android 某些设备启动MediaRecorder时出错启动失败-19_Android_Mediarecorder - Fatal编程技术网

Android 某些设备启动MediaRecorder时出错启动失败-19

Android 某些设备启动MediaRecorder时出错启动失败-19,android,mediarecorder,Android,Mediarecorder,我正在尝试在我的应用程序中录制视频,在我的Nexus 5和中兴通讯上,此代码工作正常,但在Samsumg Galaxy S2和S3上失败,例外情况是“启动失败-19”。我是MediaRecorder的noob,我只需要一个配置,可以在所有以正常质量录制.mp4视频文件的摄像头上运行 try { prCamera.unlock(); prMediaRecorder.setCamera(prCamera); prMediaRecorder.se

我正在尝试在我的应用程序中录制视频,在我的Nexus 5和中兴通讯上,此代码工作正常,但在Samsumg Galaxy S2和S3上失败,例外情况是“启动失败-19”。我是MediaRecorder的noob,我只需要一个配置,可以在所有以正常质量录制.mp4视频文件的摄像头上运行

    try {
        prCamera.unlock();
        prMediaRecorder.setCamera(prCamera);
        prMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        prMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
        prMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
        prMediaRecorder.setVideoFrameRate(24);
        prMediaRecorder.setVideoSize(720, 480);
        prMediaRecorder.setVideoFrameRate(24);
        prMediaRecorder.setVideoEncodingBitRate(3000000);
        prMediaRecorder.setAudioEncodingBitRate(12200);
        prMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        prMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
        prMediaRecorder.setMaxDuration(cMaxRecordDurationInMs);
        // Nombre del video de salida
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.ENGLISH).format(new Date());
        nombreVideo = "video_" + timeStamp;
        prRecordedFile = new File(cVideoFilePath + nombreVideo + ".mp4");
        prMediaRecorder.setOutputFile(prRecordedFile.getPath());
        prMediaRecorder.setPreviewDisplay(prSurfaceHolder.getSurface());
        try {
            prMediaRecorder.prepare();
        // Fail on next line
            prMediaRecorder.start();
        } catch (IllegalStateException e) {
            Log.d(tag, "IllegalStateException preparing MediaRecorder: " + e.getMessage());
            timer.cancel();
            cerrarCamara();
            return false;
        } catch (IOException e) {
            Log.d(tag, "IOException preparing MediaRecorder: " + e.getMessage());
            timer.cancel();
            cerrarCamara();
            return false;
        } catch (Exception e) {
            Log.d(tag, "Unknown exception preparing MediaRecorder: " + e.getMessage());
            timer.cancel();
            cerrarCamara();
            return false;
        }
        prRecordInProcess = true;
为什么不使用

CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
我无法找到此配置文件的确切设置,但我非常确定outputformat是mpeg4,这就是您想要的。。。
我记得大多数媒体录制器问题都与设置错误的参数有关。尝试使用此配置文件。它保证了设备的最高可用和工作设置。您可以在此处阅读有关此配置文件和其他配置文件的更多信息,这些配置文件可能更适合您的需要

我现在正在尝试其他想法,有意启动系统摄像头,我尝试了您的解决方案,但Samsumg设备有很多问题。@damián如果可行,请尝试一下,标记为接受pls,但这样你清楚地知道mediarecorder不会因为我上面发布的android开发者链接的设置而崩溃