1. static const int64_t kMax32BitFileSize = 0x3800000;//0x00ffffffffLL; // 2^32-1 : max FAT32

  2. static const int64_t kMax32BitDuration = 0x007fffffffLL;

然后追踪到VideoActor的处理。有一个思路,就是停止的时候,进行文件保存后立即重新启动录像。

[java] view plaincopy

  1. public void stopVideoRecordingAsync() { // TChip ZJ

  2. // for snapshot

  3. stopObjectTracking();

  4. mStopVideoRecording = true;

  5. Log.d(TAG, “stopVideoRecordingAsync() mMediaRecorderRecording=” + mMediaRecorderRecording

  6. + “, mRecorderBusy=” + mRecorderBusy

  7. + “, isVideoProcessing()” + isVideoProcessing()

  8. + “, mStopVideoRecording =” + mStopVideoRecording);

  9. mVideoContext.getZoomManager().changeZoomForQuality();

  10. mVideoContext.setSwipingEnabled(true);

  11. mHandler.removeMessages(UPDATE_RECORD_TIME);

  12. mVideoContext.getShutterManager().setVideoShutterMask(false);

  13. if (isVideoProcessing()) {

  14. return;

  15. }

  16. if (mRecorderBusy) { // return for recorder is busy.

  17. return;

  18. }

  19. mRecorderBusy = true;

  20. mRecordingView.hide();

  21. if (mMediaRecorderRecording) {

  22. mVideoContext.getShutterManager().setVideoShutterEnabled(false);

  23. if (mStoppingAction != STOP_RETURN_UNVALID && mCallFromOnPause != true) {

  24. // mVideoContext.showProgress(mVideoContext.getResources().getString(R.string.saving)); // TChip ZJ : 去掉保存UI

  25. }

  26. mVideoSavingTask = new SavingTask();

  27. mVideoSavingTask.start();

  28. else {

  29. mRecorderBusy = false;

  30. releaseRecorder();

  31. if (mStoppingAction == STOP_RETURN_UNVALID) {

  32. doReturnToCaller(false);

  33. }

  34. }

  35. }

先吃饭了,明天再看实现的可行性以及效果(是否漏秒)。

继续追踪

看了下保存的逻辑,涉及以下两处源码:

packages/apps/Camera/src/com/android/camera/manager/MMProfileManager.java

mediatek/frameworks/base/mmprofile/java/com/mediate

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

k/mmprofile/MMProfileManager.java

然后从MMProfileManager定位到MMProfile:

mediatek/frameworks/base/mmprofile/java/com/mediatek/mmprofile/MMProfile.java

这个类比较简单,加载了JNI库,再追下去就到c了。

[java] view plaincopy

  1. public class MMProfile

  2. {

  3. static

  4. {

  5. System.loadLibrary(“mmprofile_jni”);

  6. }

Android 录制视频添加时间水印,Android开发教程入门相关推荐

  1. Android 录制视频添加时间水印,不吃透都对不起自己

    mStopVideoRecording = true; Log.d(TAG, "stopVideoRecordingAsync() mMediaRecorderRecording=" ...

  2. Android录像时添加时间水印

    在网上搜索整理了下,有三篇有用的文章,原理也是一样. 实现步骤说明在这里Android 录制视频添加时间水印 上面也仅给出了步骤,具体代码在增加录像时间戳水印. camera框架介绍 可以找到.从博客 ...

  3. ffmpeg给视频添加时间水印

    ffmpeg给视频添加时间水印 通过 drawtext 滤镜模块给视频添加时间水印 给视频添加时间水印 用来做片源调试,非常方便的查找和定位处理的哪一帧视频片源: 1. 添加本地时间水印 ffmpeg ...

  4. Android视频添加时间水印

    由于需要在高通平台上做行车记录的功能,需要给视频加上时间水印. 网上搜索了一下方案,发现有在MTK平台做过类似功能的,参考: http://blog.csdn.net/jimbo_lee/articl ...

  5. 【Qt+FFmpeg】给视频添加时间水印

    ffmpeg编解码中,给本地视频加上时间水印,并保存到本地,使用到的技术是ffmpeg中的avfilter库: 具体效果如下 yuv: mp4 本方法不适合摄像头解码,解码出来糊得不行,本地视频的话会 ...

  6. android利用EpMedia给录像添加时间水印

    做出来的例子效果如下: 第一步:集成EpMedia, 步骤在大神的github上都有,地址如下: https://github.com/yangjie10930/EpMedia 添加时间水印,我的方法 ...

  7. Android 拍照添加时间水印

    效果如下图 : 1.拍照 // 非空判断 拍照if (mCamera0 != null){mCamera0.takePicture(null, null, jpeg0); // 1 front} 2. ...

  8. Android录制视频-nv21转nv12姿势(libyuv使用)

    Android录制视频-nv21转nv12姿势(libyuv使用) 前言 为什么需要转化? libyuv简介 实际使用 1.集成 2.修改代码 3.添加方法 4.项目中使用 总结 前言 近期接触项目当 ...

  9. Android录制视频,仿微信小视频录制(一)

    Android录制视频,第一部分自定义控件 简述 公司有一个录制视频并上传的功能,录制视频具体使用类如下:硬件控制使用Camera,视频录制的格式音频等具体配置与录制使用MediaRecorder,预 ...

  10. 抖音app开发时,在录制视频添加背景音乐功能实现流程

    抖音app之所以"横扫"整个短视频领域,最主要的还是占据了短视频玩法的"先机",其中在录制视频时添加背景音乐,是很多用户都非常喜欢的步骤,但是在抖音app开发时 ...

最新文章

  1. IBM Java多线程 - 3.无处不在的线程
  2. MATLAB实战系列(七)头脑风暴优化(BSO)算法求解旅行商问题(TSP)
  3. 服务注册与发现用mysql_yeasul: 轻量级服务注册与发现中心,具有健康检查功能。...
  4. mysql行复制_MySQL复制(一)--复制概述
  5. Unity 2018.3.1 SyncVar没有同步服务器变量
  6. 数据库和数据仓库区别
  7. fragment in UI5 Smart Template and directive in Angular
  8. JQuery validate 各项验证规则讲解
  9. 硬盘读写测试工具_硬盘测速工具:Blackmagic Disk Speed Test Mac
  10. ORACLE行转列通用过程(转)
  11. 香港科技大学TensorFlow速成(1)
  12. Junit + Mockito 使用资料整理
  13. 目标检测 YOLO 系列:快速迭代 YOLO v5
  14. 西北工业大学21计算机考研,研友分享:西北工业大学计算机考研血泪史
  15. 嵌入式linux软件数据参数保存的三种方式
  16. LVM -逻辑卷管理
  17. 华科2020计算机专业录取线,华中科技大学2020录取分数线是多少
  18. 【Linux】-- Mysql(2) : 创建数据库和数据表
  19. 颜色帮你缓解职场压力 给你的心情换个色
  20. Scrapy 实战之爬取妹子图

热门文章

  1. 上传图片到 OSS 带压缩图片代码
  2. LUP分解方法,矩阵求逆
  3. MT【133】磨刀不误砍柴工
  4. mapgis坡度分析_基于MAPGIS的空间分析.pdf
  5. JAVA instrument简单使用
  6. 汉字字符集编码查询_刨根究底字符编码之十——Unicode字符集的字符编码方式...
  7. QT软件开发-基于FFMPEG设计视频播放器-流媒体播放器(五)
  8. chrome下载速度慢,提高下载速度
  9. Debian10安装Chromium浏览器
  10. 工业无线开关量信号传输器