微信里的小视频功能(有些移动端IM里也叫“短视频”)是微信6.0版亮点功能之一,微信技术人员在开发此功能过程中遇到过不少问题,现将技术实现过程中遇到的问题及解决方案分享给大家,希望能对有类似需求的同行有所启发。
1录制需求
支持白平衡、对焦、缩放;
录制视频长度6秒,30帧/秒,尽量不丢帧;
能录制不同尺寸和码率的视频。
2播放需求
可以同时播放多个视频;
用户操作界面时视频可以继续播放;
播放时不能卡住界面,视频滑进界面内后要立即播放;
视频在列表内播放是静音播放,点击放大是有声播放。
技术实现:录制
对于需求1:“支持白平衡、对焦、缩放”,AVFoundation有API可以支持,这里不多说。这里重点说说需求2:“录制视频长度6秒,30帧/秒,尽量不丢帧”、需求3:“能录制不同尺寸和码率的视频”的实现方案。
前期录制方案如下:
创建AVCaptureSession,设置拍摄分辨率;
添加AVCaptureInput,如摄像头和麦克风;
添加AVCaptureOutput,如AVCaptureVideoDataOutput、AVCaptureAudioDataOutput:
这里AVCaptureAudioDataOu