仿:Android - 微信 - 朋友圈 - 小视频播放,多 4 句废话算我输
作者:林冠宏 / 指尖下的幽灵
掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8
博客:http://www.cnblogs.com/linguanh/
GitHub : https://github.com/af913337456/
为了您的直观体验,请务必看完下面 gif 图,源码 gitHub 链接在其之后。
做这个东西的目的是:
完善毕设: 一个没依赖各种云,而使用C++和Golang做后端的仿微信APP
为了避免大家浪费时间,直接先看下面的 Gif,略大,请耐心点。看完后,若你觉得会需要到,那么就请听我继续。
gif 链接 http://123.57.244.105:8081/commentthumb/GIF.gif
git显示,略大,请耐心
GitHub 链接
废话一句:这个显示只是其中一部分,重点是:FFmpeg + Camera 的录制部分,所以,你的星星(star)也是一种更新通知 (我通知你)。
https://github.com/af913337456/WeChatVideoView
功能点
如果你看完上面的gif图,你会发现如下几点功能 (Function list):
1,直观的
- 播放前,可以显示封面缩略图
- 播放时,如果还没有本地缓存,那么先进行下载
- 下载过程中,显示圆型区域进度效果
- 下载后,播放完毕后可以循环播放
- 播放已经播放过的,是具备本地缓存的,也就是既能播放网络,也能播放本地
2,隐藏的
- 低耗电量
- 低内存占用
- 无延迟图与视频切换
- 低耦合,高内聚,几行代码接入,一共3个类
解析
直观的功能点,几乎就是和新版微信
的一样,从朋友圈点击一个视频,然后进入到一个 Activity 页面进行加载以及播放。
为什么低耗电量和低内存占用?
因为采用的是 SurfaceView 而不是 TextureView,图与视频切换的切换延迟也是这个原因。
在你的 Activity 中这样使用
这样就会以 id 为 activity_main 的 Relativelayout 为父容器装载。
因为要避免内存泄露,所以你还需要做完下面的一些步骤,不会超过6行代码。
技术点 (可以不看)
1,下载操作:
自定义 AsyncTask。PS:AsyncTask 比 Thread + handler 重量级却方便(回调进度),但是,如果是 即放即用,结束即销毁,那么,no need to think about this;
2,视频播放组合拳: surfaceView + mediaPlayer
surfaceView 用作显示,mediaPlayer 用来解码
两者关系: mediaPlayer 绑定 surfaceView。
为什么不用 TextrueView?
3,进度区域
自定义 View,3个画笔绘制,一个圆,一个边,一个扇区。
仿:Android - 微信 - 朋友圈 - 小视频播放,多 4 句废话算我输的更多相关文章
- iOS燃烧动画、3D视图框架、天气动画、立体相册、微信朋友圈小视频等源码
iOS精选源码 iOS天气动画,包括太阳,云,雨,雷暴,雪动画. 较为美观的多级展开列表 3D立体相册,可以旋转的立方体 一个仪表盘Demo YGDashboardView 一个基于UIScrollV ...
- Android微信朋友圈全文、收起功能
在众多的社交类软件中,朋友圈是必不可少的,可以与好友.同学等分享自己的日常和有意思的事情,在开发社交类App时,朋友圈发表的内容你不可能让他全部显示,全部显示的话用户体验度会非常不好,这时就要用到全文 ...
- (转载) listview实现微信朋友圈嵌套
listview实现微信朋友圈嵌套 标签: androidlistview 2016-01-06 00:05 572人阅读 评论(0) 收藏 举报 分类: android(8) 版权声明:本文为博 ...
- Android 高仿微信朋友圈动态, 支持双击手势放大并滑动查看图片。
转载请注明出处:http://blog.csdn.net/sk719887916/article/details/40348873 作者skay: 最近参与了开发一款旅行APP,其中包含实时聊天和动态 ...
- Android 仿微信朋友圈发动态功能(相册图片多选)
代码分享 代码名称: 仿微信朋友圈发动态功能(相册图片多选) 代码描述: 仿微信朋友圈发动态功能(相册图片多选) 代码托管地址: http://www.apkbus.com/android-15276 ...
- Android 仿微信朋友圈添加图片
github地址(欢迎下载Demo) https://github.com/zhouxu88/WXCircleAddPic 老习惯,先上图,着急用的朋友,直接带走Demo,先拿来用吧,毕竟老板催的紧, ...
- Android NineGridLayout — 仿微信朋友圈和QQ空间的九宫格图片展示自定义控件
NineGridLayout 一个仿微信朋友圈和QQ空间的九宫格图片展示自定义控件. GitHub:https://github.com/HMY314/NineGridLayout 一.介绍 1.当只 ...
- 仿QQ空间和微信朋友圈,高解耦高复用高灵活
先看看效果: 用极少的代码实现了 动态详情 及 二级评论 的 数据获取与处理 和 UI显示与交互,并且高解耦.高复用.高灵活. 动态列表界面MomentListFragment支持 下拉刷新与上拉加载 ...
- Android实现分享内容到微信朋友圈
原文地址:http://yanwushu.sinaapp.com/android_wechat_share/ 由于需求,要实现在应用中实现分享文字+图片到微信朋友圈.在网上找了一些资料,总结如下: 思 ...
随机推荐
- wemall app商城源码中基于PHP的通用的树型类代码
wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...
- 使用php ajax写省、市、区、三级联动
题目要求: 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下拉跟着变化,市级下拉变化时区下拉跟着变化. 使用china ...
- SEO-关键词密度与友情链接交换技巧
关键词密度 关键词密度 关键词密度与关键词频率所阐述的实质上是同一个概念,用来量度关键词在网页上出现的总次数与其他文字的比例,一般用百分比表示.相对于页面总字数而言,关键词出现的频率越高,关键词密度也 ...
- Yii2 Pjax 与 ActionForm ,不刷新提交数据
<?php yii\widgets\Pjax::begin(['id'=>'phoneDetail']);?> <?php $form = ActiveForm::begin( ...
- J2那几个E和Web基础
收到PHP童鞋的反馈: 我觉得不用讲太基础的语法,基础语法大家自己去看,主要讲讲java web开发的一个流程,从开始写代码,到编译,发布,上线,回滚整个流程 大体上的环节,以及需要用到哪些工具 具体 ...
- python之列表作为函数的参数
函数参数为 列表或者字典 传递一个列表,例如 [1, 2, 3] 将此传给函数get_sum() 求出 各个元素之和 传递一个字典,打印出key/value的对应关系表: #!/usr/bin/env ...
- 性能测试培训:批量执行Jmeter脚本之ant调用
性能测试培训:批量执行Jmeter脚本之ant调用 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的load ...
- 第一个python爬虫程序
1.安装Python环境 官网https://www.python.org/下载与操作系统匹配的安装程序,安装并配置环境变量 2.IntelliJ Idea安装Python插件 我用的idea,在工具 ...
- JSP的学习
JSP的学习 1. (1).服务器的名字:Tomcat (2).服务器浏览器访问的地址为: http://localhost:8080 http://127.0.0.1:8080 2.简单的知识 (1 ...
- 【Ubuntu】您没有查看“sf_VirtualDisk”的内容所需的权限。
原文链接:http://www.crifan.com/can_not_access_share_folder_in_ubuntu_virtualbox/ [问题] 之前已经搞定可以自动共享文件夹了: ...