Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.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中只录制最后X分钟?_Android_Mediarecorder_Android Mediarecorder_Video Recording - Fatal编程技术网

如何在Android中只录制最后X分钟?

如何在Android中只录制最后X分钟?,android,mediarecorder,android-mediarecorder,video-recording,Android,Mediarecorder,Android Mediarecorder,Video Recording,我正在寻找一种只在最后X分钟内录制屏幕的方法,并且已经坚持了很多天。我尝试使用MediaRecorder,但似乎没有效果,它只能设置捕获的最大持续时间。我的代码如下: private void initRecorder() { try { mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mMediaRecorder.setVideoSource(MediaRecorder.Vide

我正在寻找一种只在最后X分钟内录制屏幕的方法,并且已经坚持了很多天。我尝试使用MediaRecorder,但似乎没有效果,它只能设置捕获的最大持续时间。我的代码如下:

private void initRecorder() {
    try {
        mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
        mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mMediaRecorder.setOutputFile(Environment
                .getExternalStoragePublicDirectory(Environment
                        .DIRECTORY_DOWNLOADS) + "/video.mp4");
        mMediaRecorder.setVideoSize(DISPLAY_WIDTH, DISPLAY_HEIGHT);
        mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
        mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        mMediaRecorder.setVideoEncodingBitRate(512 * 1000);
        mMediaRecorder.setVideoFrameRate(30);
        mMediaRecorder.setMaxDuration(1000);
        int rotation = getWindowManager().getDefaultDisplay().getRotation();
        int orientation = ORIENTATIONS.get(rotation + 90);
        mMediaRecorder.setOrientationHint(orientation);
        mMediaRecorder.prepare();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

有人有办法吗?提前谢谢

您能出示代码吗?请详细说明“无效”。Hi@Raptor,正如我前面提到的,MediaRecorder只有
SetMaxDurations(long maxDurationMs)
方法来定义视频长度,这甚至不是我想要的。Hi@Raptor,我更新了我的代码:)我不明白。如果可以设置持续时间,则可以记录“最后X分钟”的屏幕。是吗?你的意思是在用户单击“停止”之前录制屏幕,然后在最后X分钟内剪切录制的视频?如果用户记录的时间超过3小时,而我们只需要最后3分钟,却没有足够的内存,会发生什么?