客户端短视频拍摄、上传、下载,播放完整方案
来源:互联网 发布:英语词汇记忆 知乎 编辑:程序博客网 时间:2024/04/27 16:29
成长发送短视频的方案如下,可作为一个技术储备。
经过对短视频第三方平台的反复调研(详情见附件,包括相关的收费),客户端推荐使用阿里旗下的“趣拍”
这个第三方平台进行短视频的集成功能。
具体产品方案如下:
客户端:
1、客户端在发成长界面增加录制视频入口
2、跳转新的页面(如下图),使用”趣拍的SDK“进行录制,视频最长录制8秒。(这个页面不错,有不错的娱乐性能)
3、录制完成后得到缩略图可显示在当前成长界面。如下图
4、用户点击成长”发送“按钮,立即离开当前界面,回到成长记录信息流主页,在主页上出现”占位成长“。
占位成长使用的都是本地数据。同时,将成长记录存入本地草稿数据库(成长记录存入数据库,成长内容存入SD卡文件)。
如图:
5、具体的发送任务全部转到后台进行。
后台启动服务GrowServiceManager,该服务调用发布队列进行发送,通过多线程异步执行发视频与发图片
(其中视频发送到趣拍平台,发送成功, 趣拍服务器会返回视频的URL与缩略图的URL,而图片会发送到米学服务器)。
等待图片与视频均发送成功后,再将文字+视频的URL+视频缩略图截图URL+图片URL集合,一并发送到米学服务器,
代表此条记录的完整信息。
6、如果发送成功,则删除本地草稿数据库中记录,删除占位成长。
如果发送失败,则”占位成长“会一直显示在最顶端,多个占位成长,以时间先后排序。
同时,本地草稿数据库会记录发送失败的具体图片URL或视频的URL。
再次点击”重新发送“时,只发送上次失败的图片和视频。
如果后台正在发送中,则此时点击”删除“按钮时,会取消本次发送的任务,同时删除本地草稿数据库中记录,删除占位成长。
7、点击”视频缩略图“,进入新的页面,下载完成后再播放即可。
具体实现方案如下:
客户端:
1、客户端的录制与发送功能全部使用”趣拍“的SDK进行。录制视频的格式是MP4,8秒的视频以2000☓1024的码率压缩,
文件大小1.5M-2M,这个码率可以设置得更小一点,相应的文件大小也会更小一些,发送采用的分片发送的。
2、创建后台服务GrowServiceManager,负责发送成长,管理成长草稿,管理发布队列。
3、创建草稿数据库。用于存储发送过程中及失败的成长草稿记录。成长记录存入数据库,成长内容存入SD卡文件
(数据库表的设计,采用json串的形式存储字段,其中需要考虑压缩图与发送状态之间的映射,压缩图与原始图之间的映射,
如fileUrl:status,fileUrl:resultUrl)。数据库表的设计在整体方案确定后再给出。
4、点击”视频缩略图“,进入新的页面,在这里使用videoView组件完成视频的播放功能。因为视频最长8秒,
所以在这里可采用下载完成后再播放的思路 。计划这块自己写。
5、调整发送成长接口,增加两个视频信息字段(上传视频url与缩略图URL),具体的接口定义在方案确认后给出。
6、成长转到后台进行发送,必须要考虑的问题就是如果其中有发送失败的任务,仅仅是几张图或视频发送失败,
下次再尝试重新发送的时候,最好是只重新上传失败了的图或视频。这要求在草稿数据库设计这块要考虑扩展性。
服务端:
目前此种方案,服务器改动较小,只需要在发送成长接口增加传小视频的字段参数,然后分发。
0 0
- 客户端短视频拍摄、上传、下载,播放完整方案
- iOS视频拍摄压缩上传和播放
- android 视频拍摄及播放
- 客户端下载服务器视频然后播放
- spring实现文件上传和下载 完整方案
- spring实现文件上传和下载完整方案
- 【备忘】新浪微博Android客户端开发完整视频 下载
- 高仿微信短视频拍摄功能的demo下载
- 美拍、秒拍中安卓、IOS短视频拍摄的一些关键技术
- EasyDarwin开源社区 短视频拍摄项目Github地址
- iOS GPUImage研究五:短视频拍摄(滤镜、文件写入)
- Android 短视频拍摄、拍照滤镜 第三方库SDK
- 播放客户端视频
- iOS 播放客户端视频
- 使用七牛上传视频调用视频播放器的推荐方案
- EasyVideoRecorder短视频拍摄、短视频录制SDK支持IOS版本
- 视频拍摄
- Android拍摄的视频无法在IOS播放
- 关于 select()函数
- 在html中一个汉字需要多少个nbsp来填充?
- RESTful API 设计最佳实践
- SDAutoLayout:比masonry更简单易用的自动布局库
- ssh-keygen生成两个key pair分别用于链接公司gitlab和自己的github库
- 客户端短视频拍摄、上传、下载,播放完整方案
- ubuntu全自动创建Redis集群脚本slaveof
- Activiti工作流之异常处理一
- 如何把pdf转成jpg格式的图片
- Gradle详解-Chapter17. More about Tasks
- 97.获取手机设备的详细信息
- 在XCode中设置忽略signal SIGPIPE错误
- PHP 时间函数
- MapReduce运行机制