android - 如何将 View 内部发生的事情记录为视频? (安卓)

标签 android video record

是否可以将 Android 中某些 View 内的所有操作记录为视频?也许使用 C/C++ 或其他任何东西?

我知道可以使用 shell 进行录制,但需要 root 权限。没有它会更好。我们也将从 SDK 版本 16 开始。

最佳答案

您可以使用 javacv 库来组合从 View 中获取的一组位图; 代码将如下所示:

FFmpegFrameRecorder recorder = new FFmpegFrameRecorder("/sdcard/test.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();
}

这是一个 full example关于如何记录

关于android - 如何将 View 内部发生的事情记录为视频? (安卓),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36657795/

相关文章:

Delphi - 带有变体部分的记录

android - 如何在 google map v2 marker android 中添加值?

android - java.lang.OutOfMemoryError 在 android.graphics.BitmapFactory.decodeResource (BitmapFactory.java :374)

javascript - 使用 JavaScript 修改 DOM 元素属性

list - 如何将 txt 文件中的值解析为 OCaml 中的记录列表?

sql - 将函数返回的记录拆分为多列

java - 在 AsyncTask 中使用 publishProgress 方法时搞砸了

android - Kotlin 乐趣过早回归

javascript - 如何在 html5 视频中停止视频之前检查当前时间是否等于特定数字

html - 嵌入到 HTML 中的视频无法播放