文章目录
0,题记
做Android开发有三四年了,一直做的都是应用层的APP开发,实现的基本都是UI效果,动画,机型适配,集成第三方的lib进行推送,支付,第三方登录,地图等的功能,就算涉及到视屏的播放也就是直接VideoView
把mp4,flv
或者其他格式的视屏直接给展示出来,并不会对视频本身做任何的处理,比如视频的压缩、比如清晰度切换,变声,滤镜。。。 就算涉及到拍照,也都是简单的直接调用系统给定的调用系统摄像头的 API
进行拍照,然后通过回调方法拿到拍摄的缩略图或者原图的bitmap。并不会涉及到摄像头的控制,美颜,大眼,磨皮,贴纸等功能。
但是音视频的开发是更底层的,就需要涉及到使用麦克风采集音频数据,使用摄像头采集图像数据,然后要对这些数据进行编码,降噪,并增加美颜,变声等的效果,最后录制完成了并播放出来。
总结来说,摄像头的操作分为两种:
1,takeing photos
,也就是调用系统相机实现拍照功能,比如一个APP里面个人资料的头像,可以从相册选择图片,也可以调用相机进行拍摄获取图片。
2,controling the camer
主要就是控制相机,进行自定义相机,实现和系统相机类似的效果或者不同效果的一个APP,在5.0以后主要采用的是Camera2
,这个类比早起版本的Camera
功能更强大,开放了更多的可定制可控制拍摄,录制,各个环节的API
,当然功能多了,对底层的操作性更强了,那使用起来复杂度也就增加了,其实主要也就是一层一层的回调。
言归正传,
完全没有音视频开发相关的任何的基础,从0开始踩坑,从做技术调研开始,最后的目标是可以做出一个播放器,视频播放器;一个直播APP类似于映客,花椒,斗鱼;一个小咖秀类似于抖音,快手。
记录一下,一路以来的踩坑过程,对个人来说是个总结,记录,对相同想从事音视频开发的朋友也希望能帮助到他们。
废话就说这么多,下面开始正题。
1,学习路线
学习需要一个方向,以往就有人总结出过大概的一个学习路线