项目开发中使用阿里云的点播功能,从中遇到了一堆坑,特写此笔记。希望对使用阿里云点播的伙伴们有所帮助。

一、讲解录制功能

首先赋上阿里云的官方录制文档 https://help.aliyun.com/document_detail/53421.html?spm=5176.doc53407.6.680.S2RrZX

在gradle文件中使用依赖的方式引用aar:

  1. compile(name:'xxx',ext:'aar')

这里的XXX就是你导入的arr的name,不包过域名.arr

注意:目前闭源support版本的包必须跟以下版本一致.

  1. ```java
  2. compile 'com.android.support:appcompat-v7:24.2.1'
  3. compile 'com.android.support:design:24.2.1'
  4. compile 'com.google.code.findbugs:jsr305:3.0.0'
  5. compile 'com.github.bumptech.glide:glide:3.7.0'
  6. compile 'pub.devrel:easypermissions:0.2.1'
  7. compile 'com.squareup.okhttp3:okhttp:3.2.0'
  8. compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
  9. compile 'com.squareup.okio:okio:1.12.0'
  10. compile 'com.google.code.gson:gson:2.8.0'

这里需要把依赖导入进去(必须导入),如果项目中已经有对应的依赖的话就不需要了。

录制基本上也就是这些,下面讲讲录制遇到的问题

1、加载不到.so文件。

肯定是.so文件加载姿势不对,我这边是因为项目中有百度的.so文件导致32位和64位不兼容,在build.gradle加入以下代码

defaultConfig{

ndk {
abiFilters"armeabi-v7a"//如果别的存放.so文件也冲突的话,把文件名继续追加存放就ok。
}

}

特别注意,在录制时候大多数人会遇到了这两个问题

1、Android 基础版本出现java.lang.NoSuchFieldError: No field height of type I in class Lcom/aliyun/snap/snap_core/R$id; or its superclasses (declaration of ‘com.aliyun.snap.snap_core.R$id’ appears in /data/app/com.rablive.jwrablive-2/base.apk:classes2.dex)的错误

原因:arr中存放着阿里云所需要的xml文件,而其文件名与你本地的xml文件名一样了冲突了,我遇到的更恶心,阿里云的布局文件和引入的三方库布局文件名冲突了,现在想起来也来气。所以遇到这个问题的时候,即时你查找了半天的xml文件也没发现冲突,不要怀疑解决方案,一定是xml冲突了。把你引入的第三方库gradle以library形式引入或者直接复制到你的项目中,查找是否与第三方冲突。

2、Android 基础版出现java.lang.NoSuchFieldError: No static field notification_template_lines of type I in class Lcom/aliyun/snap/snap_core/R$layout; or its superclasses (declaration of ‘com.aliyun.snap.snap_core.R$layout’ appears/data/app/com.Aliyun.AliyunVideoSDK.VodSaaSDemo_android-1/base.apk)

原因:阿里云所需要的配置环境就是support包24.2.1下才可运行,所以你很明智的按照文档上把本地app的gradle改成了24.2.1,但并没有什么卵用。因为你还有三方库啊!!!
三方库的配置可不一定是24.2.1,所以解决办法依旧是把三方库以library形式导入或者代码复制到项目中,再来修改三方的gradle配置。大喘气的,这玩意把我坑去了。
录制基本上完事了。
上传和播放都挺简单的,按照文档上来就ok,没有遇到什么坑。
上传SDK文档:https://help.aliyun.com/document_detail/52207.html?spm=5176.doc51789.6.675.DrXj86
播放SDK文档:https://help.aliyun.com/document_detail/51789.html?spm=5176.7757374.6.657.sQFQ8y
那也简单说一下可能疑惑的地方吧!!
1、上传:添加上传文件

  1. uploader.addFile("<uploadFilePath>",
  2. "<videoInfo>");
  3. uploadfilePath是上传视频的本地路径
  4. videInfo:上传视频同时你也可能要上传比如视频的时长,封面,视频描述等。开发中通过VodInfo操作

执行start之前先设置上传凭证和地址才可成功uploader . setUploadAuthAndAddress ( uploadAuth , uploadAddress );

2、播放:--阿里云提供的播放支持远程和本地播放(文档确实破,好多方法都是没有的,但文档上有。郁闷)

一:本地播放(文档是没有说明播放本地,所以记录一下)

aliyunVodPlayer = new AliyunVodPlayer(this);
//设置播放的surface
aliyunVodPlayer.setDisplay(surfaceView.getHolder());
surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {@Override
    public void surfaceCreated(SurfaceHolder holder) {aliyunVodPlayer.setDisplay(holder);}@Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {aliyunVodPlayer.surfaceChanged();}@Override
    public void surfaceDestroyed(SurfaceHolder holder) {}
});
private AliyunVodPlayer aliyunVodPlayer;

AliyunLocalSource.AliyunLocalSourceBuilder asb = new AliyunLocalSource.AliyunLocalSourceBuilder();
asb.setSource(path);
AliyunLocalSource mLocalSource = asb.build();
aliyunVodPlayer.prepareAsync(mLocalSource);

我的项目中使用的是基础版的(只因公司穷),基础版改变不了ui界面,只能根据提供的style来替换图标。很low的!!
获取视频默认显示第一帧图片、视频大小、播放时长阿里云没有提供,需要自己通过java来获取。不会的可以问度娘耶。

就到这了,到饭点啦。希望对阿里云的伙伴有一点点帮助

阿里云点播录制,上传,播放使用说明及遇到的坑相关推荐

  1. 阿里云视频点播-->>>阿里云媒资上传工具类及配置

    阿里云媒资上传 官网: 介绍 1.阿里云视频点播 2.视频服务流程 三,测试类中编写代码 四,媒资管理管理配置-存储管理 五,开始编写我们的JAVA代码 1.application.yml 2.配置类 ...

  2. 解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题

    解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题 问题描述 java程序,使用阿里云oss文件上传服务,在测试时偶然发现,我用苹果手机开启高清进行摄像,将原图通过qq传到电脑上,在电 ...

  3. 阿里云视频点播 批量上传

    记录我惨痛的阿里云视频点播批量上传教训~~(Javascript SDK 上传)     阿里的点播视频上传官方文档是很精简,也有案例,无奈我这个渣渣看了官方文档始终不理解它的内部机制.看了好多案例, ...

  4. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...

  5. 如何注册阿里云申请图片上传

    该案例是实际开发中注册阿里云实现图片上传 1.在阿里云官网(https://www.aliyun.com/)注册账号: 2. 注册成功后登录阿里云: 3.登录成功后点击右上角"控制台&quo ...

  6. 4G模块接入阿里云-实现数据上传和命令下发

    功能介绍: 使用4G模块EC600S和32单片机实现接入阿里云服务器,上传光照数据和下发命令控制LED灯(PC13),同时可以打电话.发短信. 前期准备: 1.首先你得有一个阿里云的账号,没有的话就注 ...

  7. 阿里云 OSS监控上传进度

    阿里云 OSS监控上传进度 阿里云上传进度SDK 使用阿里云带进度条的上传,然后将长传进度存入session // 带进度条的上传ossClient.putObject(new PutObjectRe ...

  8. 阿里云oss文件上传工具类

    阿里云oss文件上传工具类 阿里云oss 阿里云oss 导入文件阿里云oss的maven依赖 <!-- 阿里云oss依赖 --><dependency><groupId& ...

  9. 阿里云oss视频上传后,如何获取视频封面

    前言:在阿里云oss视频上传后,我们如何获取视频封面呢?而不是通过上传方式获取封面.其实OSS本身提供了视频截帧功能 OSS提供的视频截帧功能和OSS图片服务功能使用的方式是类似的,都是通过传入x-o ...

  10. Java中阿里云OSS文件上传工具类

    阿里云OSS文件上传下载工具类 前言: 本质上就是获取配置文件信息,然后注入bean,调用sdk中提供的增删改方法: 为了避免同名文件会替换,用了hutool中唯一id生成+文件名做拼接 导入依赖:→ ...

最新文章

  1. linux 卸载java jdk1.6_Linux/CentOS 卸载系统原装jdk1.4 和安装jdk1.6.1
  2. C++/Cli中事件对象处理函数的添加与删除
  3. android封装方法js调用方法吗,common
  4. Linux系统登录相关(命令,应急响应可以用到)
  5. ios键盘弹回时顶上去得页面不会回来
  6. 优秀案例|想学排版?布局清晰明了的海报给你参考
  7. php将权限写入session,PHP由session文件夹权限不够引起的报错
  8. 计算机系统-函数调用约定/调用规范/传参方式
  9. Highcharts实现图形报表(我主要实现javaweb开发的图形报表)
  10. 创建Spring项目没有Spring Config文件怎么办
  11. 职中c语言课程,C语言课件下载【深圳职业技术学院】
  12. Android network框架分析之NetworkManagementService和netd交互深入分析(一)
  13. amd服务器epyc系列,AMD在市场上有EPYC系列的两个版本
  14. 基因组所三代单分子测序PacBio完成技术升级—超长读长助力基因组学研究
  15. mysql count sending data_深入分析MySQL Sending data查询慢问题
  16. 快速排序与冒泡排序的效率对比
  17. 什么是 go vendor
  18. 一个程序员老总的年终总结2010版 1
  19. 通俗讲解分布式锁:场景和使用方法
  20. 网络安全技术第六章——第三节木马的攻击与防治(中木马现象、木马病毒概念结构、木马实施攻击过程、配置传播运行连接木马、远程控制、木马伪装手段、更换图标改名换姓文件捆绑出错显示网页嫁衣自我销毁邮件附件)

热门文章

  1. Java基础再回首之设计模式系列①-----StrategyPattern 策略者模式(案列教程,附带demo)
  2. auto.js Pro编写的QQ跳码注册陌陌稳定版脚本源代码,免root运行
  3. 货物监控设备开发中,关于EC600S和BG95模块开机方式差异的说明
  4. python 画子图股票成交量图像
  5. 【转】48个诡异心理学
  6. 基于图神经网络的推荐系统,图神经网络算法分类
  7. Servlet/JSP(2)-数据共享(Cookie Session等),分页
  8. 攻防世界crypto进阶区--告诉你个秘密
  9. 鸿蒙系统怎么安装mate30,mate30 5g 鸿蒙系统在哪里下载安装
  10. 成都聚思力java面试题,去年秋招面试过的各个大厂总结的一波Java并发常见高频面经...