使用媒体记录器录制屏幕特定视图



我想在特定View链接中录制我的屏幕视频,只想记录在LinearLayout内执行的动作。现在,MediaRecorder录制整个屏幕,如何录制屏幕的特定部分?

MediaRecorder 使用媒体投影 API 记录整个屏幕。没有记录屏幕特定部分的选项,至少从Android 8.1开始。您需要编辑全屏视频以将其裁剪为仅显示对您重要的屏幕部分。

这是捕获特定视图的应用程序屏幕截图的代码。

public Bitmap takeScreenShot(View view) {
        view.setDrawingCacheEnabled(true);
        view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW);
        view.buildDrawingCache();
        if(view.getDrawingCache() == null) return null; 
        Bitmap snapshot = Bitmap.createBitmap(view.getDrawingCache());
        view.setDrawingCacheEnabled(false);
        view.destroyDrawingCache();
        return snapshot;
    }

如果你想记录视图,你可以使用javacv库这里是代码示例。

FFmpegFrameRecorder recorder = new FFmpegFrameRecorder("record.mp4",256,256);
try {
    recorder.setVideoCodec(avcodec.AV_CODEC_ID_MPEG4);
    recorder.setFormat("mp4");
    recorder.setFrameRate(30);
    recorder.setPixelFormat(avutil.PIX_FMT_YUV420P10);
    recorder.setVideoBitrate(1200);
    recorder.startUnsafe();
    for (int i=0;i< 5;i++)
    {
        view.setDrawingCacheEnabled(true);
        Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
        view.setDrawingCacheEnabled(false);
        recorder.record(bitmap);
    }
    recorder.stop();
}
catch (Exception e){
    e.printStackTrace();
} 

相关内容

  • 没有找到相关文章

最新更新