如何用腾讯云打造一款微视频APP

论坛 期权论坛     
选择匿名的用户   2021-5-30 01:48   134   0
<div class="content" id="articleContent">
<div class="ad-wrap">
  <p><a href="https://my.oschina.net/u/2663968/blog/3061697" style="color:#A00;font-weight:bold;">2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; </a> <img alt="hot3.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-cf0d92129138e2c138e143696168013a.png"></p>
</div>
<p>版权声明:本文由腾讯云原创文章,转载请注明出处: <br> 文章原文链接:<a href="https://www.qcloud.com/community/article/196">https://www.qcloud.com/community/article/196</a></p>
<p>来源:腾云阁 <a href="https://www.qcloud.com/community">https://www.qcloud.com/community</a></p>
<p> </p>
<p>产品的整个技术实现架构由Android/iOS APP、业务服务器以及腾讯云服务组成。其中,APP负责和用户进行交互,包含的功能模块有:</p>
<ol><li>注册登录(支持微信、QQ等第三方账号登录)</li><li>拍照/录像</li><li>上传到云(<a href="https://www.qcloud.com/product/cos.html?utm_source&#61;Community&amp;utm_medium&#61;article196&amp;utm_campaign&#61;Community">腾讯云对象存储COS</a>&#43;<a href="https://www.qcloud.com/product/cdn.html?utm_source&#61;Community&amp;utm_medium&#61;article196&amp;utm_campaign&#61;Community">内容分发网络CDN</a>)</li><li>视频播放(本地播放/云端点播)</li><li>语音识别(腾讯云智能语音服务Artificial Audio Intelligence)</li><li>图片处理(腾讯云万象优图的图片处理和智能鉴黄服务)</li></ol>
<p>考虑到我们的业务类型和开发团队的技术基础,我们选用的后台技术架构是Struts&#43;Hibernate&#43;Spring&#43;<a href="https://www.qcloud.com/product/cdb.html?utm_source&#61;Community&amp;utm_medium&#61;article196&amp;utm_campaign&#61;Community">MySql</a>,前端为Android和iOS。</p>
<p>为便于快速开发和可靠扩展,对于关键技术难点——图片、音频、视频等大量非结构化数据的上传、存储和点播,我们采用腾讯云提供的对象存储(COS:Cloud Object Service)和内容分发网络(CDN:Content Delivery Network)作为实现方案。这样,后台的MySql数据库中就只需要存储图片、音频、视频等文件在腾讯云对象存储中的Url,而不必在业务侧维护其数据持久化和容量扩展,同时,内容的分发和访问,也可通过腾讯云CDN来加速,有效降低了服务器端的下载压力。</p>
<p>在公有云产品的价格方面,腾讯云提供了每月50G存储,10G外网访问流量、10G的CDN 回源流量、100 万次读请求和10万次写请求的免费额度,可以满足初创项目的使用需求。同时,腾讯云对象存储还提供了全面的开发者手册和各类编程语言的SDK Demo,可以让开发者快速上手,搭建原型应用。</p>
<p>腾讯云COS的注册、实名认证,以及开通CDN的过程都很简单快捷,可以点击<a href="https://www.qcloud.com/product/cos.html?utm_source&#61;Community&amp;utm_medium&#61;article196&amp;utm_campaign&#61;Community">链接</a>立即使用COS的Web控制台,按照教程“快速上手”完成上述操作。<br> 接下来,新建项目PetUGC,然后在项目中新建bucket存储桶。<br><br> 同时,选择(默认)开通CDN加速。<br><br> 在存储桶gamevideo中新建文件夹whirlpk,用于存放APP上传的“宠物互动视频”。<br> 点击获取API密钥(一定要注意保护自己的密钥不被泄漏,并尽量定期的更换密钥)。<br></p>
<p>对于APP端的“文件上传”功能,腾讯云COS官方提供的SDK已经将分片上传的功能做了封装,开发者只需按照SDK文档调用FileUploadTask函数,即可完成图片、音频、视频等大文件的上传,并且能在对应的回调接口中进行上传成功/失败后的进一步操作,比如更新APP的UI来显示上传进度,或者提示上传成功/失败消息等。下面为代码示例:</p>
<pre class="blockcode"><code>import com.tencent.upload.task.impl.FileUploadTask;
import com.tencent.upload.task.IUploadTaskListener;

/* 若已存在同名的文件: INSERTONLY&#61;&#61;false 表示能够上传成功,且会覆盖同名的文件; INSERTONLY&#61;&#61;true 则不能成功上传*/

FileUploadTask task &#61; new FileUploadTask(BUCKETNAME, appidFILEPATH, ARGETDIR, ATTRS, INSERTONLY, new IUploadTaskListener(){

        &#64;Override
        public void onUploadFailed(int arg0, String arg1) {
            // TODO Auto-generated method stub
            // 上传成功
        }

        &#64;Override
        public void onUploadProgress(long arg0, long arg1) {
            // TODO Auto-generated method stub
            // 上传进度
        }

        &#64;Override
        public void onUploadStateChange(TaskState arg0) {
            // TODO Auto-generated method stub
            // 上传状态变化
        }

        &#64;Override
        public void onUploadSucceed(FileInfo arg0) {
            // TODO Auto-generated method s
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP