录制屏幕以及音效的混合实现源码分享

本文介绍了一种iOS平台上的屏幕录制方案,通过定时绘制屏幕并构建视频文件的方式实现。文中提供了THCapture类用于设置录制参数,并介绍了THCaptureUtilities类用于合并音频和视频。此外还讨论了当前实现的效果及优化方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  因为前段时间项目中需要加入录制屏幕的功能,有点类似于汤姆猫那样,可以录制下来然后分享这段视频


  从来没有接触过音视频方面的东西啊,这方面的资料也着实难找。 \

  国外的论坛中有一个人写了一个叫做ScreenCaptureView的自定义View(具体代码可自选google),其主要的原理就是定时的绘屏,然后根据关键帧构建音频文件,不过效率不是很好,实际工作中还有会很多问题。

  于是喜欢站在巨人肩上的我,就从此处开始YY了,我根据其原理自己写了一个THCapture的类(为什么我写的类总是喜欢TH开头呢,真搞不懂,哈哈),主要用来设置录制相关的属性,

  另外有一个THCaptureUtilities的类,目前里面就一个方法,主要用来实现视频与音频的混合。
  1.下面我大概的介绍一下时里面的一些方法:
  THCapture 有三个属性:
  frameRate 用来设置录制的帧频,就是一秒中录制几帧图像。
  captureLayer 用来设置你需要录制的Layer。
  delegate 是个程序员都明白的

  有两个录制相关的方法
  //开始录制
  - (bool)startRecording;
  //结束录制
  - (void)stopRecording;
  两个录制的回调方法
  //录制成功
  - (void)recordingFinished:(NSString*)outputPath;
  //录制失败
  - (void)recordingFaild:(NSError *)error;
  2.THCaptureUtilities类中目录就只有一个类方法
  // 音频与视频的合并。 action的形式如下:
  // - (void)mergedidFinish:(NSString *)videoPath WithError:(NSError *)error;
  + (void)mergeVideo:(NSString *)videoPath andAudio:(NSString *)audioPath andTarget:(id)target andAction:(SEL)action;

  根据方法名就能明白这方法的作用了
  目前代码已经可以良好的工作了,但是录制出来的效果还不是特别好,还有待优化,希望能有这方面的大牛提供一些性能的优化

  为了方便,我专程写有一个示例,实现了:使用的时候会录制10秒的视频并存入相册之中,欢迎下载、试用、提出意见





   源码下载


转载:http://www.adobex.com/android/source/details/00000326.htm

转载于:https://my.oschina.net/androidcode/blog/104617

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值