apicloud apicloud

注册
查看: 974|回复: 19

[模块教程] txCameraRecord模块demo示例

版主

UID:83211

主题:
153
帖子:
7749
云币:
60601

APICloud粉丝端午节模块开发者一周年你吃屎!女朋友SB侠APICloud大会专属勋章捣蛋鬼

[模块教程] txCameraRecord模块demo示例

974 19 | 发表于 2019-6-20 10:33:05 |阅读模式 | |
**短视频 UGSV 简介**

短视频 ( User Generated Short Video,UGSV ),基于腾讯云强大的上传、存储、转码、分发的云点播能力,提供集成了采集、剪辑、拼接、特效、分享、播放等功能的客户端 SDK,并整合腾讯的 IM、社交、用户画像数据以及最顶尖的 AI 人脸识别和图像检测技术,帮助用户聚焦业务本身,快速轻松实现基于移动端的短视频应用。


**txCameraRecord 模块概述**

本模块封装了腾讯短视频SDK中的录制、编辑、美颜、特效等功能。(模块从1.1.0版本开始需要和UIListView模块配合使用来处理音乐列表加载逻辑,使用的是开源UIListView模块版本,UIListView模块开源地址:https://github.com/apicloudcom/UIListView

点击进入模块详情

  1. <!DOCTYPE html>
  2. <html>

  3. <head>
  4.         <title>Module Develop</title>
  5.         <meta charset="utf-8">
  6.         <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
  7.         <style type="text/css">
  8.                 html,
  9.                 body {
  10.                         height: 100%
  11.                 }

  12.                 body {
  13.                         background-color: #fff;
  14.                         margin: 0;
  15.                 }

  16.                 #wrap {
  17.                         height: 100%;
  18.                         position: relative;
  19.                 }

  20.                 #header {
  21.                         padding-top: 20px;
  22.                         background-color: #5082c2;
  23.                         height: 44px;
  24.                         position: relative;
  25.                 }

  26.                 #header h1 {
  27.                         font-size: 20px;
  28.                         height: 44px;
  29.                         line-height: 44px;
  30.                         margin: 0em;
  31.                         color: #fff;
  32.                         margin-left: 100px;
  33.                         margin-right: 100px;
  34.                         text-align: center;
  35.                 }

  36.                 #main {
  37.                         display: -webkit-box;
  38.                         -webkit-box-orient: vertical;
  39.                         -webkit-box-pack: center;
  40.                 }

  41.                 a.button {
  42.                         display: -webkit-box;
  43.                         -webkit-box-orient: vertical;
  44.                         -webkit-box-pack: center;
  45.                         -webkit-box-align: center;
  46.                         height: 32px;
  47.                         margin: 8px;
  48.                         background-color: rgba(240, 240, 240, 1.0);
  49.                         border-color: rgba(220, 220, 220, 1.0);
  50.                         border-width: 2px;
  51.                         border-style: solid;
  52.                 }

  53.                 a.active {
  54.                         background-color: rgba(240, 240, 240, 0.7);
  55.                 }
  56.         </style>
  57. </head>

  58. <body>
  59.         <div id="wrap">
  60.                 <div id="main">
  61.                         <a class="button" tapmode="active" onclick="requestPermission()">权限动态申请(系统API)</a>
  62.                         <a class="button" tapmode="active" onclick="setLicence()">设置授权</a>
  63.                         <a class="button" tapmode="active" onclick="getLicenceInfo()">获取授权信息</a>
  64.                         <a class="button" tapmode="active" onclick="startVideoRecordActivity()">启动录制</a>
  65.                         <a class="button" tapmode="active" onclick="testPlay()">测试播放</a>
  66.                 </div>
  67.         </div>
  68. </body>
  69. <script type="text/javascript">
  70.         var demo = null;
  71.         apiready = function() {
  72.                 demo = api.require('txCameraRecord');
  73.                 if (!demo) {
  74.                         alert("请添加模块后编译");
  75.                         return;
  76.                 }
  77.                 demo.musicListEventListener(function(ret, err) {
  78.                         console.log(JSON.stringify(ret) + " " + JSON.stringify(err));
  79.                         //alert(JSON.stringify(ret) + " " + JSON.stringify(err));
  80.                         if (ret.eventType == 'show') {
  81.                                 //reloadData();
  82.                         } else if (ret.eventType == 'refreshHead') {
  83.                                 reloadData();
  84.                         } else if (ret.eventType == 'refreshFooter') {
  85.                                 appendData();
  86.                         }
  87.                 });
  88.         }

  89.         function requestPermission() {
  90.                 api.requestPermission({
  91.                         list: ['camera','photos','storage','microphone'],
  92.                 }, function(ret, err) {
  93.                         api.alert({
  94.                                 msg: JSON.stringify(ret)
  95.                         });
  96.                 });
  97.         }

  98.         function setLicence() {
  99.                 demo.setLicence({
  100.                         ugcLicenceUrl: 'http://download-1252463788.cossh.myqcloud.com/xiaoshipin/licence_android/TXUgcSDK.licence',
  101.                         ugcKey: '731ebcab46ecc59ab1571a6a837ddfb6'
  102.                 }, function(ret, err) {
  103.                         alert(JSON.stringify(ret) + " " + JSON.stringify(err));
  104.                 });
  105.         }

  106.         function getLicenceInfo() {
  107.                 demo.getLicenceInfo(function(ret, err) {
  108.                         alert(JSON.stringify(ret) + " " + JSON.stringify(err));
  109.                 });
  110.         }

  111.         var path;

  112.         function startVideoRecordActivity() {
  113.                 demo.startVideoRecordActivity({
  114.                         minDuration: 5, //最短时长(秒)
  115.                         maxDuration: 15, //最长时长(秒)
  116.                         aspectRatio: 2, //视频比例 0 > 1:1 1 > 4:3 2 > 16:9
  117.                         recordResolution: 1, // 录制分辨率 0 > 360_640 1 > 540_960 2 > 720_1280
  118.                         biteRate: 3000, // 码率 600-4800
  119.                         fps: 25, // 帧率 15-30
  120.                         gop: 5, //关键帧间隔 1-10
  121.                         isFront: true, //是否前置摄像头 true 前置 fasle 后置 默认 true
  122.                         isBeauty: true, //是否显示美颜按钮 true 显示 false 隐藏 默认 true
  123.                         isMusic: true, //是否显示音乐按钮 true 显示 false 隐藏 默认 false
  124.                         isCustomMusic: true, //是否自定义音乐 true 显示 false 隐藏 默认 false
  125.                         //musicPath: 'http://7z2dc9.com1.z0.glb.clouddn.com/apicloud/be59ba6f9527382d655abc50f720871e.mp3',
  126.                         //一下是音乐列表设置
  127.                         data: [{
  128.                                 imgPath: 'http://img1.3lian.com/gif/more/11/201206/a5194ba8c27b17def4a7c5495aba5e32.jpg',
  129.                                 title: 'bandari(在线测试)',
  130.                                 subTitle: 'bandari',
  131.                                 //remark: '新备注',
  132.                                 //icon: '',
  133.                                 filePath: 'http://7z2dc9.com1.z0.glb.clouddn.com/apicloud/be59ba6f9527382d655abc50f720871e.mp3',
  134.                         }],
  135.                         rightBtns: [{
  136.                                 bgColor: '#388e8e',
  137.                                 activeBgColor: '',
  138.                                 width: 70,
  139.                                 title: '选取',
  140.                                 titleSize: 12,
  141.                                 titleColor: '#fff',
  142.                                 icon: '',
  143.                                 iconWidth: 20
  144.                         }],
  145.                         styles: {
  146.                                 borderColor: '#696969',
  147.                                 item: {
  148.                                         bgColor: '#FFFFFF',
  149.                                         activeBgColor: '#F5F5F5',
  150.                                         height: 80.0,
  151.                                         imgWidth: 60,
  152.                                         imgHeight: 60,
  153.                                         imgCorner: 4,
  154.                                         placeholderImg: 'widget://image/musiclist_img_item_music_bg.png',
  155.                                 }
  156.                         },
  157.                         refreshHeader: {
  158.                                 loadingImg: 'widget://res/UIListView_arrow.png',
  159.                                 bgColor: '#F5F5F5',
  160.                                 textColor: '#8E8E8E',
  161.                                 textDown: '下拉可以刷新...',
  162.                                 textUp: '松开开始刷新...',
  163.                                 showTime: true
  164.                         },
  165.                         refreshFooter: {
  166.                                 loadingImg: 'widget://res/UIListView_arrow.png',
  167.                                 bgColor: '#F5F5F5',
  168.                                 textColor: '#8E8E8E',
  169.                                 textUp: '上拉加载更多...',
  170.                                 textDown: '松开开始加载...',
  171.                                 showTime: true
  172.                         }
  173.                 }, function(ret, err) {
  174.                         alert(JSON.stringify(ret) + " " + JSON.stringify(err));
  175.                         if (ret.status) {
  176.                                 path = ret.data.filePath;
  177.                         }
  178.                 });

  179.         }

  180.         function reloadData() {
  181.                 demo.reloadData({
  182.                         data: [{
  183.                                 imgPath: 'http://img1.3lian.com/gif/more/11/201206/a5194ba8c27b17def4a7c5495aba5e32.jpg',
  184.                                 title: '新标题',
  185.                                 subTitle: '新子标题',
  186.                                 remark: '新备注',
  187.                                 icon: ''
  188.                         }]
  189.                 }, function(ret) {
  190.                         //alert("reloadData>>" + JSON.stringify(ret) + " " + JSON.stringify(err));
  191.                 });
  192.         }

  193.         function appendData() {
  194.                 demo.appendData({
  195.                         data: [{
  196.                                 imgPath: 'http://d.hiphotos.baidu.com/image/pic/item/4d086e061d950a7b29a788c209d162d9f2d3c922.jpg',
  197.                                 title: '新增标题',
  198.                                 subTitle: '新增子标题',
  199.                                 remark: '新增备注'
  200.                         }]
  201.                 }, function(ret, err) {
  202.                         //alert("appendData>>" + JSON.stringify(ret) + " " + JSON.stringify(err));
  203.                 });
  204.         }


  205.         function testPlay() {
  206.                 if (path) {
  207.                         api.openVideo({
  208.                                 url: path
  209.                         });
  210.                 }
  211.         }
  212. </script>

  213. </html>
复制代码


主题:
0
帖子:
1
云币:
1
发表于 2019-6-20 13:40:46 |
1:1.1.0 么安卓封装失败,IOS还没测试
2:1.0.9 么setLicence 方法 返回TRUE
但是到拍视频的时候又说授权失败。 直接复制你的HTML也是这个情况。
3:人脸识别在哪里?

版主

UID:83211

主题:
153
帖子:
7749
云币:
60601

APICloud粉丝端午节模块开发者一周年你吃屎!女朋友SB侠APICloud大会专属勋章捣蛋鬼

 楼主| 发表于 2019-6-20 14:00:52 来自手机 |
授权跟包名有关的。需要用你自己的授权信息进行设置。

版主

UID:83211

主题:
153
帖子:
7749
云币:
60601

APICloud粉丝端午节模块开发者一周年你吃屎!女朋友SB侠APICloud大会专属勋章捣蛋鬼

 楼主| 发表于 2019-6-20 14:01:04 来自手机 |
这有说人脸识别么?

主题:
61
帖子:
195
云币:
225
发表于 2019-6-25 10:23:38 |
请问可以新增拍照的功能吗?

版主

UID:83211

主题:
153
帖子:
7749
云币:
60601

APICloud粉丝端午节模块开发者一周年你吃屎!女朋友SB侠APICloud大会专属勋章捣蛋鬼

 楼主| 发表于 2019-6-25 11:20:19 |
合创网络 发表于 2019-6-25 10:23
请问可以新增拍照的功能吗?

暂时不支持,,,

主题:
61
帖子:
195
云币:
225
发表于 2019-6-26 09:54:05 |
52yaoer 发表于 2019-6-25 11:20
暂时不支持,,,

请问后续会计划增加拍照这个功能吗,感觉短视频拍照也是挺需要的

主题:
41
帖子:
101
云币:
120
发表于 2019-7-6 07:27:01 |
音乐不好使啊  1.0.9 点音乐一点反应没有  1.1.0 点音乐直接死机  ,,,,  帮忙赶快解决好么   花钱买的模块 还不好使

版主

UID:83211

主题:
153
帖子:
7749
云币:
60601

APICloud粉丝端午节模块开发者一周年你吃屎!女朋友SB侠APICloud大会专属勋章捣蛋鬼

 楼主| 发表于 2019-7-6 11:17:07 |
jamesdurant 发表于 2019-7-6 07:27
音乐不好使啊  1.0.9 点音乐一点反应没有  1.1.0 点音乐直接死机  ,,,,  帮忙赶快解决好么   花钱买的 ...

死机请提供闪退日志以供分析。。。。。

主题:
10
帖子:
770
云币:
428

APICloud粉丝一周年中秋节社会摇女朋友我李白贼6APICloud大会专属勋章不觉明厉强者王者足球狗捣蛋鬼

发表于 2019-7-10 14:58:49 |
感谢分享
12下一页
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表