大家好,欢迎来到IT知识分享网。
这次的任务是模仿微信实现小视频功能
此前从未接触视频这类多媒体的开发,有点不知道从何下手的感觉
后面发现在pod里面有一个wechatshortvideo的第三方控件,很多问题就能在这里得到解决。
第一部分我们先来介绍一下按钮的事件
小视频里面的按住拍功能其实是调用了按钮里面的许多事件的,这几个事件可能在一般情况下不会用,可是认识一下这几个事件还是比较有用的
1.touch down 按钮被按下
2.touch up inside 按钮被点击,而且接触手指放开时,手指在按钮里面。
3.touch up outside 按钮被点击,而且接触手指放开时,手指在按钮外面。
4.touch drag enter 按钮在点击的过程中,接触手指进入按钮里面。
5.touch drag exit 按钮在点击的过程中,接触手指离开按钮范围。
只要监听了这些事件,对于微信小视频按钮的处理,就得到了很好的解决。
第二部分是介绍一下SCrecorder
这是一个第三方控件,这是的recorder需要装载在一个uiview里面。
_recorder = [SCRecorder recorder];
_recorder.captureSessionPreset = AVCaptureSessionPreset640x480;//设置分辨率
_recorder.maxRecordDuration = CMTimeMake(300, 30);
_recorder.delegate = self;
_recorder.autoSetVideoOrientation = YES;
UIView *previewView = self.scanPreviewView;
_recorder.previewView = previewView;//把recorder装载uiview里面。
初始化一个recorder之后,就可以用[(screcorder) record](开始录制)和[(screcorder) pause](停止录制)来控制录制的情况。
三、介绍一下SCplayer
录制完之后自然就是能够播放,这里也用到了screcorder里面带的scplayer。
_player = [SCPlayer player];
SCVideoPlayerView *playerView = [[SCVideoPlayerView alloc] initWithPlayer:_player];//用作装载scplayer
playerView.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
playerView.frame = self.scanPreviewView.bounds;
playerView.autoresizingMask = self.scanPreviewView.autoresizingMask;//设为自动填充
[self.scanPreviewView addSubview:playerView];
_player.loopEnabled = YES;//循环播放
[_player setItemByAsset:_recorder.session.assetRepresentingSegments];//将文件路径转化为avasset,用于scplayer播放
初始化一个scplayer之后,就可以用[(scplayer) play](开始播放)和[(scplayer) pause](停止播放)来控制播放
题外知识:纯代码生成控件以及控制
这次的任务完成之后,对于控件我更加了解,一个控件的生成以及控制,其实是可以用纯代码去实现的,而且这样做起来会比较方便。
比如说一个button的纯代码生成:
UIbutton *button = [[UIbutton alloc]init];
//对button的背景和title处理
button.frame=CGRectmake;
[superview addsubview:button];
代码监听button的话就用add target。
对于用storyboard,我个人更加热衷于纯代码生成,而且这样会比较方便,debugger起来也会轻松很多。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24727.html