Android、MediaRecorder到3gp容器视频失败

Android、MediaRecorder到3gp容器视频失败,android,video,multimedia,Android,Video,Multimedia,我在用MediaRecorder录制视频时遇到问题。我需要在H264中注册一个视频,并将其保存在扩展名为mp4的3gp容器中。我绝对需要这种视频格式,因为这样我就可以用我自己无法直接修改的本机库打开它。我使用的是下面的代码,它通常运行良好。但另一台平板电脑可以拍摄视频,但格式不同(本机库停止工作) 检查视频的性能,我看到第二个视频有一个容器“Quicktime”,而不是“3gp”: 分析视频的字节,我发现头不是3gp的头 代码中有什么错误 recorder = new MediaRecorde

我在用MediaRecorder录制视频时遇到问题。我需要在H264中注册一个视频,并将其保存在扩展名为mp4的3gp容器中。我绝对需要这种视频格式,因为这样我就可以用我自己无法直接修改的本机库打开它。我使用的是下面的代码,它通常运行良好。但另一台平板电脑可以拍摄视频,但格式不同(本机库停止工作)

检查视频的性能,我看到第二个视频有一个容器“Quicktime”,而不是“3gp”:

分析视频的字节,我发现头不是3gp的头

代码中有什么错误

recorder = new MediaRecorder();

    recorder.setCamera(camera);

    recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
    recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    recorder.setVideoSize(320, 240);

    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

    recordingPath = getApplicationContext().getFilesDir().getAbsolutePath()
            + "/" + System.currentMillis();
    recorder.setOutputFile(recordingPath + ".mp4");

    recorder.setMaxDuration(50000); // 50 seconds
    recorder.setMaxFileSize(5000000); // Approximately 5 megabytes
    recorder.setPreviewDisplay(recPreview.getHolder().getSurface());

    try {
        recorder.prepare();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    recorder.start();
它看起来像recorder.setOutputFormat(MediaRecorder.OutputFormat.ThreeGPP);不起作用

谢谢,尼科