如何在Android中只录制最后X分钟?
我正在寻找一种只在最后X分钟内录制屏幕的方法,并且已经坚持了很多天。我尝试使用MediaRecorder,但似乎没有效果,它只能设置捕获的最大持续时间。我的代码如下:如何在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
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分钟,却没有足够的内存,会发生什么?