我已成功使用Android上的mediaRecorder
课程录制视频。
然而,我现在需要做的就是让它记录下来,直到我告诉它停止,但只保留最多X秒记录。
例如,如果我在时间= 0(秒)开始录制,并且我将其设置为最多录制10秒,如果我按时间停止录制= 20(秒),录制的视频将会是10..20秒的时间。
与我发现的唯一相似的是setMaxDuration,但是在设定指定时间后会自动停止,所以在我的情况下它只记录前10秒。
答案 0 :(得分:3)
媒体记录器要记录X第二个你必须简单地将此代码放入你的视频记录代码中
Intent captureVideoIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
captureVideoIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 10);
captureVideoIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(captureVideoIntent, VIDEO_CAPTURED);
答案 1 :(得分:0)
我不知道有任何方法可以使用SDK完成您的需求。您可以让它录制视频,然后当您确定将视频剪切到最后10秒时。
我没有用它,但是这个人在这个answer
中建议他的图书馆答案 2 :(得分:0)
搜索它的正确关键字是“循环缓冲区”。 您将看到几种方法,这些方法并非无足轻重。 有些人使用NDK解决方案。
我的想法是: 你知道你想要录制X秒。 比记录到fileX_1,之后结束录制。 自动启动并记录fileX_2直到结束。 当它结束时,然后记录到fileX_3并删除fileX_2以节省空间。
因此最大存储和视频长度可以是X * 2.最小值可以是X.
要使用循环录制,我认为它必须将其解码为帧,存储,编码,使用大量处理能力,这会导致电池耗尽并加热设备!